Module: Mesa
Branch: master
Commit: db8cd4d519d8b4cb2c05901e4f1a80a41ae67b2b
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=db8cd4d519d8b4cb2c05901e4f1a80a41ae67b2b

Author: Iago Toral Quiroga <[email protected]>
Date:   Wed Oct  1 12:12:38 2014 +0200

glsl: Fix memory leak in builtin_builder::_image_prototype.

in_var calls the ir_variable constructor, which dups the variable name.

Reviewed-by: Ilia Mirkin <[email protected]>

---

 src/glsl/builtin_functions.cpp |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/glsl/builtin_functions.cpp b/src/glsl/builtin_functions.cpp
index 5a024cb..7d61fcc 100644
--- a/src/glsl/builtin_functions.cpp
+++ b/src/glsl/builtin_functions.cpp
@@ -4465,9 +4465,11 @@ builtin_builder::_image_prototype(const glsl_type 
*image_type,
       sig->parameters.push_tail(in_var(glsl_type::int_type, "sample"));
 
    /* Data arguments. */
-   for (unsigned i = 0; i < num_arguments; ++i)
-      sig->parameters.push_tail(in_var(data_type,
-                                       ralloc_asprintf(NULL, "arg%d", i)));
+   for (unsigned i = 0; i < num_arguments; ++i) {
+      char *arg_name = ralloc_asprintf(NULL, "arg%d", i);
+      sig->parameters.push_tail(in_var(data_type, arg_name));
+      ralloc_free(arg_name);
+   }
 
    /* Set the maximal set of qualifiers allowed for this image
     * built-in.  Function calls with arguments having fewer

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to