mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-22 09:40:40 +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 (cherry picked from commita63e69f5f0)
This commit is contained in:
parent
279c628560
commit
e1b87631a9
1 changed files with 23 additions and 22 deletions
|
|
@ -501,6 +501,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.
|
||||
|
|
@ -514,6 +536,7 @@ debug_destroy(struct gl_debug_state *debug)
|
|||
}
|
||||
|
||||
debug_clear_group(debug);
|
||||
debug_delete_messages(debug, debug->Log.NumMessages);
|
||||
free(debug);
|
||||
}
|
||||
|
||||
|
|
@ -648,28 +671,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