From daf7a5a69cac355434b95a916ab4b80bd639cebe Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Sun, 29 Oct 2006 02:46:42 +0000 Subject: [PATCH] Closing minor memory leak in XME code. --- src/video/Xext/XME/xme.c | 10 ++++++++++ src/video/Xext/extensions/xme.h | 4 ++++ src/video/x11/SDL_x11video.c | 4 ++++ 3 files changed, 18 insertions(+) diff --git a/src/video/Xext/XME/xme.c b/src/video/Xext/XME/xme.c index 0a7379642..a3674d53d 100644 --- a/src/video/Xext/XME/xme.c +++ b/src/video/Xext/XME/xme.c @@ -393,3 +393,13 @@ Bool XiGMiscFullScreen(Display *dpy, int screen, XID window, XID cmap) return (rep.success ? xTrue : xFalse); } + +/* SDL addition from Ryan: free memory used by xme. */ +void XiGMiscDestroy(void) +{ + if (xigmisc_info) { + XextDestroyExtension(xigmisc_info); + xigmisc_info = NULL; + } +} + diff --git a/src/video/Xext/extensions/xme.h b/src/video/Xext/extensions/xme.h index 41bb416ad..f550623c9 100644 --- a/src/video/Xext/extensions/xme.h +++ b/src/video/Xext/extensions/xme.h @@ -36,6 +36,10 @@ extern int XiGMiscQueryResolutions(Display *dpy, int screen, int view, XiGMiscResolutionInfo **presolutions); extern void XiGMiscChangeResolution(Display *dpy, int screen, int view, int width, int height, int refresh); + +/* SDL addition from Ryan: free memory used by xme. */ +extern void XiGMiscDestroy(void); + #endif /* _XME_H_INCLUDED */ diff --git a/src/video/x11/SDL_x11video.c b/src/video/x11/SDL_x11video.c index 94778967a..af3884a1f 100644 --- a/src/video/x11/SDL_x11video.c +++ b/src/video/x11/SDL_x11video.c @@ -1408,5 +1408,9 @@ void X11_VideoQuit(_THIS) /* Direct screen access, no memory buffer */ this->screen->pixels = NULL; } + +#if SDL_VIDEO_DRIVER_X11_XME + XiGMiscDestroy(); +#endif }