From db8cd4d519d8b4cb2c05901e4f1a80a41ae67b2b Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Wed, 1 Oct 2014 12:12:38 +0200 Subject: 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 --- src/glsl/builtin_functions.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/glsl') diff --git a/src/glsl/builtin_functions.cpp b/src/glsl/builtin_functions.cpp index 5a024cb4386..7d61fcc3561 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 -- cgit v1.2.3