diff options
author | Ian Romanick <[email protected]> | 2014-03-12 14:55:31 -0700 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2014-03-25 12:09:36 -0700 |
commit | b66319b006a23875390769b6b4fde83e6e938f23 (patch) | |
tree | 4395be8d47e4dc88674953ebf80cc779cc16d059 /src/glsl/ir_constant_expression.cpp | |
parent | 14f0faacb631e8bcd3948e6711768d39f844a70a (diff) |
glsl: Fold implementation of ir_dereference_variable::constant_referenced into wrapper
Signed-off-by: Ian Romanick <[email protected]>
Reviewed-by: Topi Pohjolainen <[email protected]>
Diffstat (limited to 'src/glsl/ir_constant_expression.cpp')
-rw-r--r-- | src/glsl/ir_constant_expression.cpp | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/glsl/ir_constant_expression.cpp b/src/glsl/ir_constant_expression.cpp index 4149a0e6e2b..c013dfd3595 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; + + 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 |