Only enable verbose NoOp dispatch if DEBUG is defined

By default we generate a function per GL entry point to warn if it's
called without a context set.  This is to allow the function to print
it's name in the warning.  By using a generic function that doesn't print
the function name in the non-DEBUG case, we reduce libGL size from
320008 bytes to 283144 bytes (11%).
This commit is contained in:
Kristian Høgsberg 2010-01-03 23:24:13 -05:00
parent c3047e73f7
commit 2b218d94b5

View file

@ -108,6 +108,8 @@ warn(const char *func)
return 0;
}
#ifdef DEBUG
#define KEYWORD1 static
#define KEYWORD1_ALT static
#define KEYWORD2 GLAPIENTRY
@ -121,11 +123,26 @@ warn(const char *func)
#define RETURN_DISPATCH(func, args, msg) \
return warn(#func);
#define TABLE_ENTRY(name) (_glapi_proc) NoOp##name
#else
static void
NoOpGeneric(void)
{
if ((WarnFlag || getenv("MESA_DEBUG") || getenv("LIBGL_DEBUG"))
&& warning_func) {
warning_func(NULL, "GL User Error: calling GL function");
}
}
#define TABLE_ENTRY(name) (_glapi_proc) NoOpGeneric
#endif
#define DISPATCH_TABLE_NAME __glapi_noop_table
#define UNUSED_TABLE_NAME __unused_noop_functions
#define TABLE_ENTRY(name) (_glapi_proc) NoOp##name
static GLint NoOpUnused(void)
{
return warn("extension function");