Module: Mesa Branch: master Commit: ddd694293ad610f8ef80750d0f50e97d4909fb53 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ddd694293ad610f8ef80750d0f50e97d4909fb53
Author: Francisco Jerez <curroje...@riseup.net> Date: Fri Sep 20 16:29:48 2013 -0700 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 <kenn...@whitecape.org> --- src/mesa/drivers/dri/i965/brw_cfg.cpp | 1 + src/mesa/drivers/dri/i965/brw_cfg.h | 2 +- 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 02ae37e..33097eb 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); _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit