[Mesa-dev] [PATCH 04/14] mesa: Fix _mesa_problem() on context destroy after application debug output

Eric Anholt eric at anholt.net
Fri Feb 22 19:52:13 PST 2013


This was apparently not noticed because we don't have any testing of
application-generated debug output.  However, as I'm changing the
GL-generated debug output to use the same path as
application/middleware-generated debug output, this obviously became an
issue.
---
 src/mesa/main/errors.c |    6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/mesa/main/errors.c b/src/mesa/main/errors.c
index 3714067..6adc466 100644
--- a/src/mesa/main/errors.c
+++ b/src/mesa/main/errors.c
@@ -756,6 +756,11 @@ _mesa_init_errors(struct gl_context *ctx)
       }
 }
 
+static void
+do_nothing(GLuint key, void *data, void *userData)
+{
+}
+
 void
 _mesa_free_errors_data(struct gl_context *ctx)
 {
@@ -765,6 +770,7 @@ _mesa_free_errors_data(struct gl_context *ctx)
    /* Tear down state for filtering client-provided debug messages. */
    for (s = 0; s < SOURCE_COUNT; s++)
       for (t = 0; t < MESA_DEBUG_TYPE_COUNT; t++) {
+         _mesa_HashDeleteAll(ClientIDs->Namespaces[s][t].IDs, do_nothing, NULL);
          _mesa_DeleteHashTable(ClientIDs->Namespaces[s][t].IDs);
          for (sev = 0; sev < MESA_DEBUG_SEVERITY_COUNT; sev++) {
             struct simple_node *node, *tmp;
-- 
1.7.10.4



More information about the mesa-dev mailing list