From 8dd619ba6825e673a357336b69c96accaa96a7ef Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 23 Aug 2010 17:16:25 -0700 Subject: glsl: Rely on talloc_autofree_context() instead of trying to free on our own. Because the static types talloc their names at dlopen time, talloc_freeing the types at DRI driver screen teardown means that if the screen gets brought back up again, the names will point at freed memory. talloc_autofree_context() exists to do just what we want here: Free memory referenced across the program's lifetime so that we avoid noise in memory leak checkers. Fixes: bug #29722 (assertion failure in unigine). --- src/glsl/glsl_types.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'src/glsl/glsl_types.cpp') diff --git a/src/glsl/glsl_types.cpp b/src/glsl/glsl_types.cpp index 518abc959d..c488f5c271 100644 --- a/src/glsl/glsl_types.cpp +++ b/src/glsl/glsl_types.cpp @@ -41,7 +41,7 @@ void glsl_type::init_talloc_type_ctx(void) { if (glsl_type::mem_ctx == NULL) { - glsl_type::mem_ctx = talloc_init("glsl_type"); + glsl_type::mem_ctx = talloc_autofree_context(); assert(glsl_type::mem_ctx != NULL); } } @@ -230,11 +230,6 @@ _mesa_glsl_release_types(void) hash_table_dtor(glsl_type::record_types); glsl_type::record_types = NULL; } - - if (glsl_type::mem_ctx != NULL) { - talloc_free(glsl_type::mem_ctx); - glsl_type::mem_ctx = NULL; - } } -- cgit v1.2.3