diff options
author | Jon TURNEY <jon.turney@dronecode.org.uk> | 2010-09-24 16:57:19 +0100 |
---|---|---|
committer | Jon TURNEY <jon.turney@dronecode.org.uk> | 2010-09-29 21:32:17 +0100 |
commit | 9ad5f3e30afc71c4007545eabfa962d0a9a54882 (patch) | |
tree | 54b95e51af79446ded8642dfe21363c8ef0a98b8 | |
parent | 806bb975f2749fdd81acbd1a9a5e7eabba737a9f (diff) |
glx: In DrawableGone, only clear context tags when we are also deleting the contextcygwin-aiglx-for-1.9
In DrawableGone, don't clear tags for context which has idExists set
The client hasn't deleted them yet and may still refer to the tag
https://bugs.freedesktop.org/show_bug.cgi?id=30089
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
-rw-r--r-- | glx/glxext.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/glx/glxext.c b/glx/glxext.c index 4078e896b..3bac156f6 100644 --- a/glx/glxext.c +++ b/glx/glxext.c @@ -148,7 +148,8 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid) if (c == __glXLastContext) __glXFlushContextCache(); - for (i = 1; i < currentMaxClients; i++) { + if (!c->idExists) { + for (i = 1; i < currentMaxClients; i++) { if (clients[i]) { __GLXclientState *cl = glxGetClient(clients[i]); @@ -161,10 +162,8 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid) } } } - } - - if (!c->idExists) { - __glXFreeContext(c); + } + __glXFreeContext(c); } } if (c->drawPriv == glxPriv) |