On Wed, Mar 12, 2014 at 03:49:22PM -0700, Ian Romanick wrote: > From: Ian Romanick <ian.d.roman...@intel.com> > > Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> > --- > src/glsl/ir_constant_expression.cpp | 25 +++++++++++++------------ > 1 file changed, 13 insertions(+), 12 deletions(-) > > diff --git a/src/glsl/ir_constant_expression.cpp > b/src/glsl/ir_constant_expression.cpp > index 4149a0e..c013dfd 100644 > --- a/src/glsl/ir_constant_expression.cpp > +++ b/src/glsl/ir_constant_expression.cpp > @@ -400,6 +400,12 @@ constant_referenced(const ir_dereference *deref, > struct hash_table *variable_context, > ir_constant *&store, int &offset) > { > + store = NULL; > + offset = 0; > + > + if (variable_context == NULL) > + return false; > + > switch (deref->ir_type) { > case ir_type_dereference_array: > ((ir_dereference_array *) deref)->constant_referenced(variable_context, > @@ -411,15 +417,16 @@ constant_referenced(const ir_dereference *deref, > store, offset); > break; > > - case ir_type_dereference_variable: > - ((ir_dereference_variable *) > deref)->constant_referenced(variable_context, > - store, > offset); > + case ir_type_dereference_variable: { > + const ir_dereference_variable *const dv = > + (const ir_dereference_variable *) deref;
I was wondering why you introduced the explicit braces here as the surrounding cases do not have them. But this is in order for the compiler to allow the introduction of the new stack variable, right? > + > + store = (ir_constant *) hash_table_find(variable_context, dv->var); > break; > + } > > default: > assert(!"Should not get here."); > - store = NULL; > - offset = 0; > break; > } > > @@ -430,13 +437,7 @@ void > ir_dereference_variable::constant_referenced(struct hash_table > *variable_context, > ir_constant *&store, int &offset) > const > { > - if (variable_context) { > - store = (ir_constant *)hash_table_find(variable_context, var); > - offset = 0; > - } else { > - store = NULL; > - offset = 0; > - } > + ::constant_referenced(this, variable_context, store, offset); > } > > void > -- > 1.8.1.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev