On Wednesday, November 11, 2015 01:07:24 PM Matt Turner wrote: > On Wed, Nov 11, 2015 at 12:46 PM, Kenneth Graunke <kenn...@whitecape.org> > wrote: > > On Monday, November 02, 2015 04:29:22 PM Matt Turner wrote: > >> The test (file == BAD_FILE) works on registers for which the constructor > >> has not run because BAD_FILE is zero. The next commit will move > >> BAD_FILE in the enum so that it's no longer zero. > >> --- > >> src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 10 +++++++++- > >> src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 3 +++ > >> src/mesa/drivers/dri/i965/brw_vec4_nir.cpp | 9 +++++++++ > >> 3 files changed, 21 insertions(+), 1 deletion(-) > >> > >> diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp > >> b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp > >> index 7eeff93..611347c 100644 > >> --- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp > >> +++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp > >> @@ -260,6 +260,10 @@ void > >> fs_visitor::nir_emit_system_values() > >> { > >> nir_system_values = ralloc_array(mem_ctx, fs_reg, SYSTEM_VALUE_MAX); > >> + for (unsigned i = 0; i < SYSTEM_VALUE_MAX; i++) { > >> + nir_system_values[i].file = BAD_FILE; > > > > How about we do this instead: > > > > nir_system_values[i] = fs_reg(); > > > > That way, they're properly constructed using the default constructor, > > which would not only set BAD_FILE, but properly initialize everything, > > so we don't have to revisit this if we make other changes in fs_reg(). > > Is it worth is? The function this code exists in is the thing that > initializes the system values. And, of course if file == BAD_FILE, no > other fields mean anything. Neither of those are likely to change.
Yes. It's the correct thing to do. We don't want partially initialized objects. That way lies madness.
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev