nir: Make nir_create_function() strdup the function name.
authorKenneth Graunke <kenneth@whitecape.org>
Sat, 28 Mar 2015 02:23:36 +0000 (19:23 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 2 Apr 2015 21:20:00 +0000 (14:20 -0700)
glsl_to_nir passes in the ir_function's name field; we were copying the
pointer, but not duplicating the memory.

We want to be able to free the linked GLSL IR program after translating
to NIR, so we'll need to create a copy of the function name that the NIR
shader actually owns.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
src/glsl/nir/nir.c

index 6459d5108260990ff7cb2bae576a2b6e78f2c4fb..0311d8d27f0f33e78c4ba9d379cd62685e6f29f8 100644 (file)
@@ -108,7 +108,7 @@ nir_function_create(nir_shader *shader, const char *name)
 
    exec_list_push_tail(&shader->functions, &func->node);
    exec_list_make_empty(&func->overload_list);
-   func->name = name;
+   func->name = ralloc_strdup(func, name);
    func->shader = shader;
 
    return func;