[Mesa-dev] [PATCH] mesa: free debug messages when destroying the debug state
Iago Toral
itoral at igalia.com
Fri Apr 13 07:29:58 UTC 2018
Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>
On Fri, 2018-04-13 at 15:31 +1000, Timothy Arceri wrote:
> Fixes: 04a8baad3721 "mesa: refactor _mesa_PopDebugGroup and
> _mesa_free_errors_data"
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98281
> ---
> src/mesa/main/debug_output.c | 45 ++++++++++++++++++--------------
> ----
> 1 file changed, 23 insertions(+), 22 deletions(-)
>
> diff --git a/src/mesa/main/debug_output.c
> b/src/mesa/main/debug_output.c
> index 859e1f966d2..306ca98fe4f 100644
> --- a/src/mesa/main/debug_output.c
> +++ b/src/mesa/main/debug_output.c
> @@ -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)
> {
More information about the mesa-dev
mailing list