summaryrefslogtreecommitdiff
path: root/src/glsl/ir.cpp
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2010-07-23 12:49:17 -0700
committerEric Anholt <eric@anholt.net>2010-07-26 19:09:10 -0700
commiteb2cc4f1b1f5ac657c632aa41da5f23eb1cdbe10 (patch)
treeeb916b744f3bcc3af13907d6648e815f4435c740 /src/glsl/ir.cpp
parente2130d4e39b6ebd9f5d39598a006906680efd830 (diff)
glsl2: Steal ir_variable's constant_value field.
Fixes a link-time crash in glsl-vs-cross-3.
Diffstat (limited to 'src/glsl/ir.cpp')
-rw-r--r--src/glsl/ir.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/glsl/ir.cpp b/src/glsl/ir.cpp
index 8ebef7d95a..2fd654e9bf 100644
--- a/src/glsl/ir.cpp
+++ b/src/glsl/ir.cpp
@@ -908,6 +908,9 @@ visit_exec_list(exec_list *list, ir_visitor *visitor)
static void
steal_memory(ir_instruction *ir, void *new_ctx)
{
+ ir_variable *var = ir->as_variable();
+ if (var != NULL && var->constant_value != NULL)
+ talloc_steal(ir, var->constant_value);
talloc_steal(new_ctx, ir);
}