mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-03 12:08:06 +02:00
mesa: free debug messages when destroying the debug state
Fixes: 04a8baad37 "mesa: refactor _mesa_PopDebugGroup and _mesa_free_errors_data"
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98281
This commit is contained in:
parent
c500ab2735
commit
a63e69f5f0
1 changed files with 23 additions and 22 deletions
|
|
@ -500,6 +500,28 @@ debug_clear_group(struct gl_debug_state *debug)
|
|||
debug->Groups[gstack] = NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete the oldest debug messages out of the log.
|
||||
*/
|
||||
static void
|
||||
debug_delete_messages(struct gl_debug_state *debug, int count)
|
||||
{
|
||||
struct gl_debug_log *log = &debug->Log;
|
||||
|
||||
if (count > log->NumMessages)
|
||||
count = log->NumMessages;
|
||||
|
||||
while (count--) {
|
||||
struct gl_debug_message *msg = &log->Messages[log->NextMessage];
|
||||
|
||||
debug_message_clear(msg);
|
||||
|
||||
log->NumMessages--;
|
||||
log->NextMessage++;
|
||||
log->NextMessage %= MAX_DEBUG_LOGGED_MESSAGES;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loop through debug group stack tearing down states for
|
||||
* filtering debug messages. Then free debug output state.
|
||||
|
|
@ -513,6 +535,7 @@ debug_destroy(struct gl_debug_state *debug)
|
|||
}
|
||||
|
||||
debug_clear_group(debug);
|
||||
debug_delete_messages(debug, debug->Log.NumMessages);
|
||||
free(debug);
|
||||
}
|
||||
|
||||
|
|
@ -647,28 +670,6 @@ debug_fetch_message(const struct gl_debug_state *debug)
|
|||
return (log->NumMessages) ? &log->Messages[log->NextMessage] : NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete the oldest debug messages out of the log.
|
||||
*/
|
||||
static void
|
||||
debug_delete_messages(struct gl_debug_state *debug, int count)
|
||||
{
|
||||
struct gl_debug_log *log = &debug->Log;
|
||||
|
||||
if (count > log->NumMessages)
|
||||
count = log->NumMessages;
|
||||
|
||||
while (count--) {
|
||||
struct gl_debug_message *msg = &log->Messages[log->NextMessage];
|
||||
|
||||
debug_message_clear(msg);
|
||||
|
||||
log->NumMessages--;
|
||||
log->NextMessage++;
|
||||
log->NextMessage %= MAX_DEBUG_LOGGED_MESSAGES;
|
||||
}
|
||||
}
|
||||
|
||||
static struct gl_debug_message *
|
||||
debug_get_group_message(struct gl_debug_state *debug)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue