mesa: eliminate debug output message_insert

Add validate_length, and call it together with log_msg directly instead of
message_insert.  No functional change.

v2: make sure length is non-negative (i.e., known) before calling
    validate_length, noted by Timothy Arceri

Signed-off-by: Chia-I Wu <olv@lunarg.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
Chia-I Wu
2014-04-22 14:36:25 +08:00
parent 188d22d9b7
commit 94e45c98e1

View File

@@ -719,33 +719,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;
}
@@ -761,7 +746,15 @@ _mesa_DebugMessageInsert(GLenum source, GLenum type, GLuint id,
if (!validate_params(ctx, INSERT, callerstr, source, type, severity))
return; /* GL_INVALID_ENUM */
message_insert(source, type, id, severity, length, buf, callerstr);
if (length < 0)
length = strlen(buf);
if (!validate_length(ctx, callerstr, length))
return; /* GL_INVALID_VALUE */
log_msg(ctx, gl_enum_to_debug_source(source),
gl_enum_to_debug_type(type), id,
gl_enum_to_debug_severity(severity),
length, buf);
}
@@ -913,10 +906,13 @@ _mesa_PushDebugGroup(GLenum source, GLuint id, GLsizei length,
if (length < 0)
length = strlen(message);
if (!validate_length(ctx, callerstr, length))
return; /* GL_INVALID_VALUE */
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);
@@ -950,9 +946,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,