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

This commit is contained in:
Eric Anholt
2010-08-04 12:57:58 -07:00
parent 8273bd4687
commit 952d0f88e1
2 changed files with 2 additions and 2 deletions

View File

@@ -690,11 +690,11 @@ ir_dereference_variable::constant_expression_value()
ir_constant * ir_constant *
ir_dereference_array::constant_expression_value() ir_dereference_array::constant_expression_value()
{ {
void *ctx = talloc_parent(this);
ir_constant *array = this->array->constant_expression_value(); ir_constant *array = this->array->constant_expression_value();
ir_constant *idx = this->array_index->constant_expression_value(); ir_constant *idx = this->array_index->constant_expression_value();
if ((array != NULL) && (idx != NULL)) { if ((array != NULL) && (idx != NULL)) {
void *ctx = talloc_parent(this);
if (array->type->is_matrix()) { if (array->type->is_matrix()) {
/* Array access of a matrix results in a vector. /* Array access of a matrix results in a vector.
*/ */

View File

@@ -2622,7 +2622,7 @@ _mesa_glsl_compile_shader(GLcontext *ctx, struct gl_shader *shader)
progress = do_constant_folding(shader->ir) || progress; progress = do_constant_folding(shader->ir) || progress;
progress = do_algebraic(shader->ir) || progress; progress = do_algebraic(shader->ir) || progress;
progress = do_if_return(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_if_to_cond_assign(shader->ir) || progress;
progress = do_vec_index_to_swizzle(shader->ir) || progress; progress = do_vec_index_to_swizzle(shader->ir) || progress;