summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChase Douglas <chase.douglas@canonical.com>2012-04-20 15:08:08 -0700
committerPeter Hutterer <peter.hutterer@who-t.net>2012-04-23 15:00:26 +1000
commited8d50ba3a6f837d213ed7c39c2b63d33fc75a38 (patch)
treea0bd75549bca2b99d63605265721679699047110
parentc6fc799a81334a223cf0e924cd9e7e94ba147835 (diff)
downloadxorg-lib-libXext-ed8d50ba3a6f837d213ed7c39c2b63d33fc75a38.tar.gz
Destroy generic event extension after last display is removed
The extension record is currently leaked and never freed. Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--src/Xge.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/Xge.c b/src/Xge.c
index 74e4802..1f37e59 100644
--- a/src/Xge.c
+++ b/src/Xge.c
@@ -218,7 +218,15 @@ _xgeDpyClose(Display* dpy, XExtCodes* codes)
XFree(xge_data);
}
- return XextRemoveDisplay(xge_info, dpy);
+ if(!XextRemoveDisplay(xge_info, dpy))
+ return 0;
+
+ if (xge_info->ndisplays == 0) {
+ XextDestroyExtension(xge_info);
+ xge_info = NULL;
+ }
+
+ return 1;
}
/*