Revert "glsl: clone inputs and outputs during linking"
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 29 Jun 2015 05:17:16 +0000 (22:17 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 29 Jun 2015 05:20:27 +0000 (22:20 -0700)
This reverts commit c2ff3485b3d48749ea9dcad07bc1a691627dc3e5.

Ilia and I noticed a memory leak caused by this patch: at least with
fixed-function programs, we clone things using ProgramResourceList as
the context before reralloc makes it non-NULL.

I believe Tapani found other bugs with these patches, so I'm just going
to revert them for now and let him pursue them further.

src/glsl/linker.cpp

index 5da9cadcb0832756ada56eddff422b81bb2526d8..4a726d4e2e7f2c06a77d3a236ca85f54eb58da0e 100644 (file)
@@ -2637,9 +2637,7 @@ add_interface_variables(struct gl_shader_program *shProg,
          continue;
       };
 
-      /* Clone ir_variable data so that backend is able to free memory. */
-      if (!add_program_resource(shProg, programInterface,
-                                var->clone(shProg->ProgramResourceList, NULL),
+      if (!add_program_resource(shProg, programInterface, var,
                                 build_stageref(shProg, var->name) | mask))
          return false;
    }