[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