diff options
| -rw-r--r-- | src/glx/dri2_glx.c | 3 | ||||
| -rw-r--r-- | src/glx/dri_glx.c | 3 | ||||
| -rw-r--r-- | src/glx/drisw_glx.c | 3 | ||||
| -rw-r--r-- | src/glx/glxcmds.c | 4 | 
4 files changed, 9 insertions, 4 deletions
| diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index 4a08f84de3..a94223b2a1 100644 --- a/src/glx/dri2_glx.c +++ b/src/glx/dri2_glx.c @@ -119,7 +119,8 @@ dri2_destroy_context(__GLXcontext *context)     struct dri2_context *pcp = (struct dri2_context *) context;     struct dri2_screen *psc = (struct dri2_screen *) context->psc; -   glx_send_destroy_context(psc->base.dpy, context->xid); +   if (context->xid) +      glx_send_destroy_context(psc->base.dpy, context->xid);     if (context->extensions)        XFree((char *) context->extensions); diff --git a/src/glx/dri_glx.c b/src/glx/dri_glx.c index d0f680de63..eaf8e3b7f2 100644 --- a/src/glx/dri_glx.c +++ b/src/glx/dri_glx.c @@ -505,7 +505,8 @@ dri_destroy_context(__GLXcontext * context)     struct dri_context *pcp = (struct dri_context *) context;     struct dri_screen *psc = (struct dri_screen *) context->psc; -   glx_send_destroy_context(psc->base.dpy, context->xid); +   if (context->xid) +      glx_send_destroy_context(psc->base.dpy, context->xid);     if (context->extensions)        XFree((char *) context->extensions); diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c index 852e56e484..11f88e9670 100644 --- a/src/glx/drisw_glx.c +++ b/src/glx/drisw_glx.c @@ -245,7 +245,8 @@ drisw_destroy_context(__GLXcontext *context)     struct drisw_context *pcp = (struct drisw_context *) context;     struct drisw_screen *psc = (struct drisw_screen *) context->psc; -   glx_send_destroy_context(psc->base.dpy, context->xid); +   if (context->xid) +      glx_send_destroy_context(psc->base.dpy, context->xid);     if (context->extensions)        XFree((char *) context->extensions); diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c index 1ded6247ef..b92638c9c2 100644 --- a/src/glx/glxcmds.c +++ b/src/glx/glxcmds.c @@ -584,7 +584,7 @@ glx_send_destroy_context(Display *dpy, XID xid)  static void  indirect_destroy_context(__GLXcontext *gc)  { -   if (!gc->imported) +   if (!gc->imported && gc->xid)        glx_send_destroy_context(gc->psc->dpy, gc->xid);     __glXFreeVertexArrayState(gc); @@ -619,6 +619,8 @@ DestroyContext(Display * dpy, GLXContext gc)         * Note that we set gc->xid = None above.  In MakeContextCurrent()         * we check for that and delete the context there.         */ +      if (!gc->imported) +	 glx_send_destroy_context(dpy, gc->xid);        gc->xid = None;        __glXUnlock();        return; | 
