Mesa (master): i965: Initialize all member variables of bblock_t on construction.

Francisco Jerez currojerez at kemper.freedesktop.org
Wed Oct 2 00:42:34 UTC 2013


Module: Mesa
Branch: master
Commit: fde23b61a996b0f3348f20e7636253465822aca1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=fde23b61a996b0f3348f20e7636253465822aca1

Author: Francisco Jerez <currojerez at riseup.net>
Date:   Fri Sep 20 16:27:42 2013 -0700

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 <kenneth at whitecape.org>

---

 src/mesa/drivers/dri/i965/brw_cfg.cpp |    3 ++-
 src/mesa/drivers/dri/i965/brw_cfg.h   |    2 +-
 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 f4cfcd5..02ae37e 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 27bc8b6..505a5cf 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);
 




More information about the mesa-commit mailing list