diff options
Diffstat (limited to 'src/mesa/main/shaderobj.c')
-rw-r--r-- | src/mesa/main/shaderobj.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/mesa/main/shaderobj.c b/src/mesa/main/shaderobj.c index ccf7efddbde..c0abc971eea 100644 --- a/src/mesa/main/shaderobj.c +++ b/src/mesa/main/shaderobj.c @@ -275,9 +275,15 @@ void _mesa_clear_shader_program_data(struct gl_context *ctx, struct gl_shader_program *shProg) { - if (shProg->Uniforms) { - _mesa_free_uniform_list(shProg->Uniforms); - shProg->Uniforms = NULL; + if (shProg->UniformStorage) { + ralloc_free(shProg->UniformStorage); + shProg->NumUserUniformStorage = 0; + shProg->UniformStorage = NULL; + } + + if (shProg->UniformHash) { + string_to_uint_map_dtor(shProg->UniformHash); + shProg->UniformHash = NULL; } if (shProg->Varying) { |