glsl: avoid leaking hiddenUniforms map when there are no uniforms
authorIlia Mirkin <imirkin@alum.mit.edu>
Fri, 2 Oct 2015 00:21:47 +0000 (20:21 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Fri, 2 Oct 2015 18:14:27 +0000 (14:14 -0400)
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
src/glsl/link_uniforms.cpp

index 47d49c8..740b0a4 100644 (file)
@@ -1131,15 +1131,15 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
    const unsigned num_data_slots = uniform_size.num_values;
    const unsigned hidden_uniforms = uniform_size.num_hidden_uniforms;
 
+   /* assign hidden uniforms a slot id */
+   hiddenUniforms->iterate(assign_hidden_uniform_slot_id, &uniform_size);
+   delete hiddenUniforms;
+
    /* On the outside chance that there were no uniforms, bail out.
     */
    if (num_uniforms == 0)
       return;
 
-   /* assign hidden uniforms a slot id */
-   hiddenUniforms->iterate(assign_hidden_uniform_slot_id, &uniform_size);
-   delete hiddenUniforms;
-
    struct gl_uniform_storage *uniforms =
       rzalloc_array(prog, struct gl_uniform_storage, num_uniforms);
    union gl_constant_value *data =