summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancisco Jerez <[email protected]>2013-09-20 16:29:48 -0700
committerFrancisco Jerez <[email protected]>2013-10-01 17:30:51 -0700
commitddd694293ad610f8ef80750d0f50e97d4909fb53 (patch)
tree2e45b31ec13a523c1fb61b2a76c58de3bc13260b
parentfde23b61a996b0f3348f20e7636253465822aca1 (diff)
i965: Initialize all member variables of cfg_t on construction.
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. Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/brw_cfg.cpp1
-rw-r--r--src/mesa/drivers/dri/i965/brw_cfg.h2
2 files changed, 2 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_cfg.cpp b/src/mesa/drivers/dri/i965/brw_cfg.cpp
index 02ae37e13ca..33097ebff4f 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 505a5cfdf60..ec5a3a02059 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);