diff options
author | José Fonseca <[email protected]> | 2012-02-02 10:44:10 +0000 |
---|---|---|
committer | José Fonseca <[email protected]> | 2012-02-02 14:45:24 +0000 |
commit | efd73f72d8f34a40d6a1cd279fffa48dc13b6e5b (patch) | |
tree | d0cb063eee478da9413c46facec70a65c06aabf8 | |
parent | db312b62f2237ea5fd5a98f04550b862c116a392 (diff) |
mapi/glapi: Never use a generic no-op entry-point on Windows.
When GLAPIENTRY is __stdcall (ie Windows), the stack is popped by the
callee making the number/type of arguments significant, therefore
using a generic no-op causes stack corruption for many entry-points.
NOTE: This is a candidate for the 8.0 branch.
Reviewed-by: Brian Paul <[email protected]>
-rw-r--r-- | src/mapi/glapi/glapi_nop.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/mapi/glapi/glapi_nop.c b/src/mapi/glapi/glapi_nop.c index 9b092971506..69b1ae6dd79 100644 --- a/src/mapi/glapi/glapi_nop.c +++ b/src/mapi/glapi/glapi_nop.c @@ -51,7 +51,11 @@ _glapi_set_warning_func(_glapi_proc func) { } -#ifdef DEBUG +/* + * When GLAPIENTRY is __stdcall (i.e. Windows), the stack is popped by the + * callee making the number/type of arguments significant. + */ +#if defined(_WIN32) || defined(DEBUG) /** * Called by each of the no-op GL entrypoints. @@ -59,7 +63,7 @@ _glapi_set_warning_func(_glapi_proc func) static int Warn(const char *func) { -#if !defined(_WIN32_WCE) +#if defined(DEBUG) && !defined(_WIN32_WCE) if (getenv("MESA_DEBUG") || getenv("LIBGL_DEBUG")) { fprintf(stderr, "GL User Error: gl%s called without a rendering context\n", func); |