summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2010-06-30 11:51:54 -0700
committerEric Anholt <eric@anholt.net>2010-06-30 11:52:40 -0700
commit0eda9ae0a6bcd6a7e014df046c87fac5caee0e9e (patch)
tree35262898ff20b7c1370be72e5fd083feaa99c9f4
parent16b68b1952d0da14b9ce8306efa64988ce46b4b7 (diff)
glsl2: Make function names and variable names be children of the node.
This avoids losing their memory when the parser state is freed.
-rw-r--r--src/glsl/ir.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/glsl/ir.cpp b/src/glsl/ir.cpp
index 4eb0e9e33e..60ee36d17c 100644
--- a/src/glsl/ir.cpp
+++ b/src/glsl/ir.cpp
@@ -733,7 +733,7 @@ ir_variable::ir_variable(const struct glsl_type *type, const char *name)
mode(ir_var_auto), interpolation(ir_var_smooth), array_lvalue(false)
{
this->type = type;
- this->name = name;
+ this->name = talloc_strdup(this, name);
this->location = -1;
this->warn_extension = NULL;
this->constant_value = NULL;
@@ -820,9 +820,8 @@ ir_function_signature::replace_parameters(exec_list *new_params)
ir_function::ir_function(const char *name)
- : name(name)
{
- /* empty */
+ this->name = talloc_strdup(this, name);
}