From d76a22b9314bfd407c7e26f78305aeecb5d2bcfb Mon Sep 17 00:00:00 2001 From: marha Date: Mon, 19 Apr 2010 07:24:51 +0000 Subject: xserver git update 19/4/2010 --- xorg-server/glx/glxext.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'xorg-server/glx/glxext.c') diff --git a/xorg-server/glx/glxext.c b/xorg-server/glx/glxext.c index 59bcfbed2..89e58b0b0 100644 --- a/xorg-server/glx/glxext.c +++ b/xorg-server/glx/glxext.c @@ -126,6 +126,17 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid) { __GLXcontext *c; + /* If this drawable was created using glx 1.3 drawable + * constructors, we added it as a glx drawable resource under both + * its glx drawable ID and it X drawable ID. Remove the other + * resource now so we don't a callback for freed memory. */ + if (glxPriv->drawId != glxPriv->pDraw->id) { + if (xid == glxPriv->drawId) + FreeResourceByType(glxPriv->pDraw->id, __glXDrawableRes, TRUE); + else + FreeResourceByType(glxPriv->drawId, __glXDrawableRes, TRUE); + } + for (c = glxAllContexts; c; c = c->next) { if (c->isCurrent && (c->drawPriv == glxPriv || c->readPriv == glxPriv)) { int i; -- cgit v1.2.3