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

Author: Ian Romanick <[email protected]>
Date:   Wed Mar 12 14:55:31 2014 -0700

glsl: Fold implementation of ir_dereference_variable::constant_referenced into 
wrapper

Signed-off-by: Ian Romanick <[email protected]>
Reviewed-by: Topi Pohjolainen <[email protected]>

---

 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;
+
+      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

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to