Mesa (master): mesa: Release gl_debug_state when destroying context.

Brian Paul brianp at kemper.freedesktop.org
Wed Mar 12 15:43:10 UTC 2014


Module: Mesa
Branch: master
Commit: 6e627b49f9c9b62bb116a738305a564d4f28e633
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6e627b49f9c9b62bb116a738305a564d4f28e633

Author: Mike Stroyan <mike at lunarg.com>
Date:   Tue Mar 11 17:07:00 2014 -0600

mesa: Release gl_debug_state when destroying context.

Commit 6e8d04a caused a leak by allocating ctx->Debug but never freeing it.
Release the memory in _mesa_free_errors_data when destroying a context.
Use FREE to match CALLOC_STRUCT from _mesa_get_debug_state.

Reviewed-by: Brian Paul <brianp at vmware.com>

---

 src/mesa/main/errors.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/mesa/main/errors.c b/src/mesa/main/errors.c
index 8ec6a8c..9151718 100644
--- a/src/mesa/main/errors.c
+++ b/src/mesa/main/errors.c
@@ -969,7 +969,7 @@ _mesa_init_errors(struct gl_context *ctx)
 
 /**
  * Loop through debug group stack tearing down states for
- * filtering debug messages.
+ * filtering debug messages.  Then free debug output state.
  */
 void
 _mesa_free_errors_data(struct gl_context *ctx)
@@ -980,6 +980,9 @@ _mesa_free_errors_data(struct gl_context *ctx)
       for (i = 0; i <= ctx->Debug->GroupStackDepth; i++) {
          free_errors_data(ctx, i);
       }
+      FREE(ctx->Debug);
+      /* set to NULL just in case it is used before context is completely gone. */
+      ctx->Debug = NULL;
    }
 }
 




More information about the mesa-commit mailing list