[PATCH] Fixed simple-egl tear-down order to prevent a crash on exit time.
Yeh, Sinclair
sinclair.yeh at intel.com
Fri Apr 19 10:49:12 PDT 2013
wl_egl_window_destory() distroys the window handle that
dri2_destroy_surface() later uses when eglTerminate() is called.
Reordering the tear down order prevents such case from occuring.
---
clients/simple-egl.c | 11 ++++++-----
1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/clients/simple-egl.c b/clients/simple-egl.c index 26ebe5c..f4468b7 100644
--- a/clients/simple-egl.c
+++ b/clients/simple-egl.c
@@ -146,11 +146,6 @@ init_egl(struct display *display, int opaque) static void fini_egl(struct display *display) {
- /* Required, otherwise segfault in egl_dri2.c: dri2_make_current()
- * on eglReleaseThread(). */
- eglMakeCurrent(display->egl.dpy, EGL_NO_SURFACE, EGL_NO_SURFACE,
- EGL_NO_CONTEXT);
-
eglTerminate(display->egl.dpy);
eglReleaseThread();
}
@@ -330,6 +325,12 @@ create_surface(struct window *window) static void destroy_surface(struct window *window) {
+ /* Required, otherwise segfault in egl_dri2.c: dri2_make_current()
+ * on eglReleaseThread(). */
+ eglMakeCurrent(window->display->egl.dpy, EGL_NO_SURFACE, EGL_NO_SURFACE,
+ EGL_NO_CONTEXT);
+
+ eglDestroySurface(window->display->egl.dpy, window->egl_surface);
wl_egl_window_destroy(window->native);
wl_shell_surface_destroy(window->shell_surface);
--
1.7.7.6
More information about the wayland-devel
mailing list