diff options
author | Chase Douglas <chase.douglas@canonical.com> | 2012-04-20 15:08:08 -0700 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2012-04-23 15:00:26 +1000 |
commit | ed8d50ba3a6f837d213ed7c39c2b63d33fc75a38 (patch) | |
tree | a0bd75549bca2b99d63605265721679699047110 | |
parent | c6fc799a81334a223cf0e924cd9e7e94ba147835 (diff) | |
download | xorg-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.c | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -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; } /* |