summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon TURNEY <jon.turney@dronecode.org.uk>2010-09-24 16:57:19 +0100
committerJon TURNEY <jon.turney@dronecode.org.uk>2010-09-29 21:32:17 +0100
commit9ad5f3e30afc71c4007545eabfa962d0a9a54882 (patch)
tree54b95e51af79446ded8642dfe21363c8ef0a98b8
parent806bb975f2749fdd81acbd1a9a5e7eabba737a9f (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.c9
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)