Mesa (glsl2): glsl2: Skip talloc_parent in constant_expression of non-constant arrays.

Eric Anholt anholt at kemper.freedesktop.org
Wed Aug 4 20:00:23 UTC 2010


Module: Mesa
Branch: glsl2
Commit: 952d0f88e1741d51b641be75f7c5a6565e245a69
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=952d0f88e1741d51b641be75f7c5a6565e245a69

Author: Eric Anholt <eric at anholt.net>
Date:   Wed Aug  4 12:57:58 2010 -0700

glsl2: Skip talloc_parent in constant_expression of non-constant arrays.

---

 src/glsl/ir_constant_expression.cpp |    2 +-
 src/mesa/program/ir_to_mesa.cpp     |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/glsl/ir_constant_expression.cpp b/src/glsl/ir_constant_expression.cpp
index 677353e..0a92424 100644
--- a/src/glsl/ir_constant_expression.cpp
+++ b/src/glsl/ir_constant_expression.cpp
@@ -690,11 +690,11 @@ ir_dereference_variable::constant_expression_value()
 ir_constant *
 ir_dereference_array::constant_expression_value()
 {
-   void *ctx = talloc_parent(this);
    ir_constant *array = this->array->constant_expression_value();
    ir_constant *idx = this->array_index->constant_expression_value();
 
    if ((array != NULL) && (idx != NULL)) {
+      void *ctx = talloc_parent(this);
       if (array->type->is_matrix()) {
 	 /* Array access of a matrix results in a vector.
 	  */
diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
index ba0934c..dcf8c49 100644
--- a/src/mesa/program/ir_to_mesa.cpp
+++ b/src/mesa/program/ir_to_mesa.cpp
@@ -2622,7 +2622,7 @@ _mesa_glsl_compile_shader(GLcontext *ctx, struct gl_shader *shader)
 	 progress = do_constant_folding(shader->ir) || progress;
 	 progress = do_algebraic(shader->ir) || progress;
 	 progress = do_if_return(shader->ir) || progress;
-	 if (ctx->Shader.EmitNoIfs)
+	 if (1 || ctx->Shader.EmitNoIfs)
 	    progress = do_if_to_cond_assign(shader->ir) || progress;
 
 	 progress = do_vec_index_to_swizzle(shader->ir) || progress;




More information about the mesa-commit mailing list