[Mesa-dev] [PATCH 16/21] mesa: eliminate debug output message_insert
Timothy Arceri
t_arceri at yahoo.com.au
Tue Apr 22 04:14:55 PDT 2014
On Tue, 2014-04-22 at 16:58 +0800, Chia-I Wu wrote:
> Add validate_length and use it and log_msg directly.
>
> Signed-off-by: Chia-I Wu <olv at lunarg.com>
> ---
> src/mesa/main/errors.c | 46 ++++++++++++++++++++--------------------------
> 1 file changed, 20 insertions(+), 26 deletions(-)
>
> diff --git a/src/mesa/main/errors.c b/src/mesa/main/errors.c
> index bf0886f..0aa9c8a 100644
> --- a/src/mesa/main/errors.c
> +++ b/src/mesa/main/errors.c
> @@ -724,33 +724,18 @@ error:
> }
>
>
> -/**
> - * This is a generic message insert function.
> - * Validation of source, type and severity parameters should be done
> - * before calling this funtion.
> - */
> -static void
> -message_insert(GLenum source, GLenum type, GLuint id,
> - GLenum severity, GLint length, const GLchar *buf,
> - const char *callerstr)
> +static GLboolean
> +validate_length(struct gl_context *ctx, const char *callerstr, GLsizei length)
> {
> - GET_CURRENT_CONTEXT(ctx);
> -
> - if (length < 0)
> - length = strlen(buf);
> -
> if (length >= MAX_DEBUG_MESSAGE_LENGTH) {
> _mesa_error(ctx, GL_INVALID_VALUE,
> "%s(length=%d, which is not less than "
> "GL_MAX_DEBUG_MESSAGE_LENGTH=%d)", callerstr, length,
> MAX_DEBUG_MESSAGE_LENGTH);
> - return;
> + return GL_FALSE;
> }
>
> - log_msg(ctx,
> - gl_enum_to_debug_source(source),
> - gl_enum_to_debug_type(type), id,
> - gl_enum_to_debug_severity(severity), length, buf);
> + return GL_TRUE;
> }
>
>
> @@ -765,8 +750,16 @@ _mesa_DebugMessageInsert(GLenum source, GLenum type, GLuint id,
>
> if (!validate_params(ctx, INSERT, callerstr, source, type, severity))
> return; /* GL_INVALID_ENUM */
> + if (!validate_length(ctx, callerstr, length))
> + return; /* GL_INVALID_VALUE */
>
> - message_insert(source, type, id, severity, length, buf, callerstr);
> + if (length < 0)
> + length = strlen(buf);
> +
The validate call should be here i.e after checking buf length.
"The error INVALID_VALUE will be
generated if the number of characters in <buf>, excluding the null
terminator when <length> is negative, is not less than the value of
MAX_DEBUG_MESSAGE_LENGTH."
> + log_msg(ctx, gl_enum_to_debug_source(source),
> + gl_enum_to_debug_type(type), id,
> + gl_enum_to_debug_severity(severity),
> + length, buf);
> }
>
>
> @@ -916,12 +909,16 @@ _mesa_PushDebugGroup(GLenum source, GLuint id, GLsizei length,
> return;
> }
>
> + if (!validate_length(ctx, callerstr, length))
> + return; /* GL_INVALID_VALUE */
> +
> if (length < 0)
> length = strlen(message);
As above the validate should be here
>
> - message_insert(source, GL_DEBUG_TYPE_PUSH_GROUP, id,
> - GL_DEBUG_SEVERITY_NOTIFICATION, length,
> - message, callerstr);
> + log_msg(ctx, gl_enum_to_debug_source(source),
> + MESA_DEBUG_TYPE_PUSH_GROUP, id,
> + MESA_DEBUG_SEVERITY_NOTIFICATION, length,
> + message);
>
> /* pop reuses the message details from push so we store this */
> emptySlot = debug_get_group_message(debug);
> @@ -955,9 +952,6 @@ _mesa_PopDebugGroup(void)
> debug_pop_group(debug);
>
> gdmessage = debug_get_group_message(debug);
> - /* using log_msg() directly here as verification of parameters
> - * already done in push
> - */
> log_msg(ctx, gdmessage->source,
> gl_enum_to_debug_type(GL_DEBUG_TYPE_POP_GROUP),
> gdmessage->id,
More information about the mesa-dev
mailing list