summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2014-08-23 15:33:13 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2014-08-23 16:28:27 +0100
commit12c051d5c673d79c16a3a1478c0977799484ca95 (patch)
tree5d882b50a510152773200d5cada41613d00477a7
parent1bbacf80a9c4e7a259f896064b5cb147c4523f12 (diff)
sna/dri2: Unhook event from draw list upon client destruction
When the client goes away, we need to free its events. However, we have to defer the freeing of any pending event (ones currently routed through the kernel) for those we need to remember to decouple the event from the Drawable's list before they are freed. Reported-by: John Lindgren <john.lindgren@aol.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82979 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/sna/sna_dri2.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/sna/sna_dri2.c b/src/sna/sna_dri2.c
index 7343ca18..94bfcdab 100644
--- a/src/sna/sna_dri2.c
+++ b/src/sna/sna_dri2.c
@@ -1392,6 +1392,7 @@ sna_dri2_client_gone(CallbackListPtr *list, void *closure, void *data)
assert(event->client == client);
if (event->queued) {
+ sna_dri2_remove_event((WindowPtr)event->draw, event);
event->client = NULL;
event->draw = NULL;
list_del(&event->link);