glx: Hold on to drawables if we're just switching to another context
authorKristian Høgsberg <krh@bitplanet.net>
Tue, 21 Sep 2010 13:56:05 +0000 (09:56 -0400)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 21 Sep 2010 14:20:23 +0000 (10:20 -0400)
https://bugs.freedesktop.org/show_bug.cgi?id=30234

src/glx/dri2_glx.c

index 8247588e76bfa4eca151c351dbfc055db55b0df9..911298b37c845bfad11e9a96d8a6b8f76eae892f 100644 (file)
@@ -118,6 +118,8 @@ dri2_destroy_context(struct glx_context *context)
    struct dri2_context *pcp = (struct dri2_context *) context;
    struct dri2_screen *psc = (struct dri2_screen *) context->psc;
 
+   driReleaseDrawables(&pcp->base);
+
    if (context->xid)
       glx_send_destroy_context(psc->base.dpy, context->xid);
 
@@ -158,7 +160,8 @@ dri2_unbind_context(struct glx_context *context, struct glx_context *new)
 
    (*psc->core->unbindContext) (pcp->driContext);
 
-   driReleaseDrawables(&pcp->base);
+   if (context == new)
+      driReleaseDrawables(&pcp->base);
 }
 
 static struct glx_context *