diff options
Diffstat (limited to 'glx')
-rw-r--r-- | glx/glxcmds.c | 4 | ||||
-rw-r--r-- | glx/glxext.c | 5 |
2 files changed, 5 insertions, 4 deletions
diff --git a/glx/glxcmds.c b/glx/glxcmds.c index 0ca0598fe..083113584 100644 --- a/glx/glxcmds.c +++ b/glx/glxcmds.c @@ -1226,10 +1226,6 @@ static int DoDestroyDrawable(__GLXclientState *cl, XID glxdrawable, int type) } } - if (type == GLX_DRAWABLE_PIXMAP) { - ((PixmapPtr) pGlxDraw->pDraw)->refcnt--; - } - FreeResource(glxdrawable, FALSE); return Success; diff --git a/glx/glxext.c b/glx/glxext.c index 85d8debd4..cd92f6d0a 100644 --- a/glx/glxext.c +++ b/glx/glxext.c @@ -107,6 +107,11 @@ static int ContextGone(__GLXcontext* cx, XID id) */ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid) { + ScreenPtr pScreen = glxPriv->pDraw->pScreen; + + if (glxPriv->type == GLX_DRAWABLE_PIXMAP) + (*pScreen->DestroyPixmap)((PixmapPtr) glxPriv->pDraw); + glxPriv->pDraw = NULL; glxPriv->drawId = 0; __glXUnrefDrawable(glxPriv); |