summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancisco Jerez <[email protected]>2013-09-20 16:27:42 -0700
committerFrancisco Jerez <[email protected]>2013-10-01 17:30:51 -0700
commitfde23b61a996b0f3348f20e7636253465822aca1 (patch)
tree70aab8618883e243d4ba8af7197958451846a9a5
parent58d772cb41b71dd3f5cf2bd4afb5781327ab4495 (diff)
i965: Initialize all member variables of bblock_t on construction.
The bblock_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. v2: Use zero initialization for numeric types instead of default construction. Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/brw_cfg.cpp3
-rw-r--r--src/mesa/drivers/dri/i965/brw_cfg.h2
2 files changed, 3 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_cfg.cpp b/src/mesa/drivers/dri/i965/brw_cfg.cpp
index f4cfcd56875..02ae37e13ca 100644
--- a/src/mesa/drivers/dri/i965/brw_cfg.cpp
+++ b/src/mesa/drivers/dri/i965/brw_cfg.cpp
@@ -44,7 +44,8 @@ pop_stack(exec_list *list)
return block;
}
-bblock_t::bblock_t()
+bblock_t::bblock_t() :
+ start_ip(0), end_ip(0), block_num(0)
{
start = NULL;
end = NULL;
diff --git a/src/mesa/drivers/dri/i965/brw_cfg.h b/src/mesa/drivers/dri/i965/brw_cfg.h
index 27bc8b6021e..505a5cfdf60 100644
--- a/src/mesa/drivers/dri/i965/brw_cfg.h
+++ b/src/mesa/drivers/dri/i965/brw_cfg.h
@@ -39,7 +39,7 @@ public:
class bblock_t {
public:
- DECLARE_RZALLOC_CXX_OPERATORS(bblock_t)
+ DECLARE_RALLOC_CXX_OPERATORS(bblock_t)
bblock_link *make_list(void *mem_ctx);