[Mesa-dev] [PATCH 06/11] i965: Initialize all member variables of cfg_t on construction.
Kenneth Graunke
kenneth at whitecape.org
Tue Sep 24 11:12:43 PDT 2013
On 09/20/2013 09:51 PM, Francisco Jerez wrote:
> The cfg_t object relies on the memory allocator zeroing out its
> contents before it's initialized, which is quite an unusual practice
> in the C++ world because it ties objects to some specific allocation
> scheme, and gives unpredictable results when an object is created with
> a different allocator -- Stack allocation, array allocation, or
> aggregation inside a different object are some of the useful
> possibilities that come to my mind. Initialize all fields from the
> constructor and stop using the zeroing allocator.
> ---
> src/mesa/drivers/dri/i965/brw_cfg.cpp | 1 +
> src/mesa/drivers/dri/i965/brw_cfg.h | 2 +-
> 2 files changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_cfg.cpp b/src/mesa/drivers/dri/i965/brw_cfg.cpp
> index 6a886ce..4ba4dcb 100644
> --- a/src/mesa/drivers/dri/i965/brw_cfg.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_cfg.cpp
> @@ -82,6 +82,7 @@ cfg_t::create(void *parent_mem_ctx, exec_list *instructions)
> {
> mem_ctx = ralloc_context(parent_mem_ctx);
> block_list.make_empty();
> + blocks = NULL;
> num_blocks = 0;
> ip = 0;
> cur = NULL;
> diff --git a/src/mesa/drivers/dri/i965/brw_cfg.h b/src/mesa/drivers/dri/i965/brw_cfg.h
> index 505a5cf..ec5a3a0 100644
> --- a/src/mesa/drivers/dri/i965/brw_cfg.h
> +++ b/src/mesa/drivers/dri/i965/brw_cfg.h
> @@ -60,7 +60,7 @@ public:
>
> class cfg_t {
> public:
> - DECLARE_RZALLOC_CXX_OPERATORS(cfg_t)
> + DECLARE_RALLOC_CXX_OPERATORS(cfg_t)
>
> cfg_t(backend_visitor *v);
> cfg_t(void *mem_ctx, exec_list *instructions);
>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
More information about the mesa-dev
mailing list