From 7bbcc0b832b02f9da6365ec6a86a0167cf75d8a8 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Fri, 30 Sep 2011 14:21:10 -0700 Subject: glsl: Delete symbol table in post-link shaders The symbol table in the linked shaders may contain references to variables that were removed (e.g., unused uniforms). Since it may contain junk, there is no possible valid use. Delete it and set the pointer to NULL. Signed-off-by: Ian Romanick Reviewed-by: Kenneth Graunke --- src/glsl/linker.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/glsl') diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp index d802a0a9bae..6d40dd2e393 100644 --- a/src/glsl/linker.cpp +++ b/src/glsl/linker.cpp @@ -1831,6 +1831,14 @@ done: /* Retain any live IR, but trash the rest. */ reparent_ir(prog->_LinkedShaders[i]->ir, prog->_LinkedShaders[i]->ir); + + /* The symbol table in the linked shaders may contain references to + * variables that were removed (e.g., unused uniforms). Since it may + * contain junk, there is no possible valid use. Delete it and set the + * pointer to NULL. + */ + delete prog->_LinkedShaders[i]->symbols; + prog->_LinkedShaders[i]->symbols = NULL; } ralloc_free(mem_ctx); -- cgit v1.2.3