summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJosé Fonseca <[email protected]>2012-02-02 10:44:10 +0000
committerJosé Fonseca <[email protected]>2012-02-02 14:45:24 +0000
commitefd73f72d8f34a40d6a1cd279fffa48dc13b6e5b (patch)
treed0cb063eee478da9413c46facec70a65c06aabf8 /src
parentdb312b62f2237ea5fd5a98f04550b862c116a392 (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]>
Diffstat (limited to 'src')
-rw-r--r--src/mapi/glapi/glapi_nop.c8
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);