[Mesa-dev] [PATCH] GLX: Don't destroy screen on XCloseDisplay()
George Kyriazis
george.kyriazis at intel.com
Fri Mar 4 19:26:16 UTC 2016
screen may still be used by other resources that are not yet freed.
To correctly fix this there will be a need to account for resources
differently, but this quick fix is not any worse than the original
code that leaked screens anyway.
---
src/gallium/state_trackers/glx/xlib/xm_api.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/gallium/state_trackers/glx/xlib/xm_api.c b/src/gallium/state_trackers/glx/xlib/xm_api.c
index cee4f18..5799cce 100644
--- a/src/gallium/state_trackers/glx/xlib/xm_api.c
+++ b/src/gallium/state_trackers/glx/xlib/xm_api.c
@@ -174,9 +174,13 @@ xmesa_close_display(Display *display)
/* don't forget to clean up mesaDisplay */
XMesaDisplay xmdpy = &info->mesaDisplay;
- if (xmdpy->screen) {
- xmdpy->screen->destroy(xmdpy->screen);
- }
+ /**
+ * XXX: Don't destroy the screens here, since there may still
+ * be some dangling screen pointers that are used after this point
+ * if (xmdpy->screen) {
+ * xmdpy->screen->destroy(xmdpy->screen);
+ * }
+ */
free(xmdpy->smapi);
XFree((char *) info);
--
2.5.0
More information about the mesa-dev
mailing list