Mesa (master): glsl/standalone: Fix memory leaks
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Dec 15 19:56:27 UTC 2020
Module: Mesa
Branch: master
Commit: 0d23f4e56fb6ec8b1b13fd48d937850d87ad4f26
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0d23f4e56fb6ec8b1b13fd48d937850d87ad4f26
Author: Eric Anholt <eric at anholt.net>
Date: Fri Dec 4 15:17:51 2020 -0800
glsl/standalone: Fix memory leaks
Needed for meson test with asan enabled.
Reviewed-by: Adam Jackson <ajax at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7936>
---
src/compiler/glsl/standalone.cpp | 5 +++--
src/compiler/glsl/standalone_scaffolding.cpp | 1 +
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/compiler/glsl/standalone.cpp b/src/compiler/glsl/standalone.cpp
index ca187001186..653f3801e2b 100644
--- a/src/compiler/glsl/standalone.cpp
+++ b/src/compiler/glsl/standalone.cpp
@@ -599,7 +599,7 @@ standalone_compile_shader(const struct standalone_options *_options,
fail:
for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
if (whole_program->_LinkedShaders[i])
- ralloc_free(whole_program->_LinkedShaders[i]->Program);
+ _mesa_delete_linked_shader(ctx, whole_program->_LinkedShaders[i]);
}
ralloc_free(whole_program);
@@ -611,12 +611,13 @@ standalone_compiler_cleanup(struct gl_shader_program *whole_program)
{
for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
if (whole_program->_LinkedShaders[i])
- ralloc_free(whole_program->_LinkedShaders[i]->Program);
+ _mesa_delete_linked_shader(NULL, whole_program->_LinkedShaders[i]);
}
delete whole_program->AttributeBindings;
delete whole_program->FragDataBindings;
delete whole_program->FragDataIndexBindings;
+ delete whole_program->UniformHash;
ralloc_free(whole_program);
_mesa_glsl_builtin_functions_decref();
diff --git a/src/compiler/glsl/standalone_scaffolding.cpp b/src/compiler/glsl/standalone_scaffolding.cpp
index 5d2ede26852..c5c69e8d161 100644
--- a/src/compiler/glsl/standalone_scaffolding.cpp
+++ b/src/compiler/glsl/standalone_scaffolding.cpp
@@ -142,6 +142,7 @@ void
_mesa_delete_linked_shader(struct gl_context *,
struct gl_linked_shader *sh)
{
+ ralloc_free(sh->Program);
ralloc_free(sh);
}
More information about the mesa-commit
mailing list