glx: Compare old ctx against dummyCtx, not NULL
authorKristian Høgsberg <krh@bitplanet.net>
Thu, 29 Jul 2010 22:44:26 +0000 (18:44 -0400)
committerKristian Høgsberg <krh@bitplanet.net>
Thu, 29 Jul 2010 22:49:10 +0000 (18:49 -0400)
https://bugs.freedesktop.org/show_bug.cgi?id=29302

src/glx/glxclient.h
src/glx/glxcurrent.c
src/glx/indirect_glx.c

index 84e1742..81c9a26 100644 (file)
@@ -774,6 +774,8 @@ GetGLXDRIDrawable(Display *dpy, GLXDrawable drawable);
 
 #endif
 
+extern struct glx_context dummyContext;
+
 extern struct glx_screen *
 indirect_create_screen(int screen, struct glx_display * priv);
 extern struct glx_context *
index 0eccc9f..e256997 100644 (file)
@@ -60,7 +60,7 @@ static GLubyte dummyBuffer[__GLX_BUFFER_LIMIT_SIZE];
 ** gl and glx entry points are designed to operate as nop's when using
 ** the dummy context structure.
 */
-static struct glx_context dummyContext = {
+struct glx_context dummyContext = {
    &dummyBuffer[0],
    &dummyBuffer[0],
    &dummyBuffer[0],
index cbc3129..f059840 100644 (file)
@@ -137,7 +137,7 @@ indirect_bind_context(struct glx_context *gc, struct glx_context *old,
    Display *dpy = gc->psc->dpy;
    int opcode = __glXSetupForCommand(dpy);
 
-   if (old && !old->isDirect && old->psc->dpy == dpy)
+   if (old != &dummyContext && !old->isDirect && old->psc->dpy == dpy)
       tag = old->currentContextTag;
    else
       tag = None;