On Fri, Apr 19, 2013 at 05:49:12PM +0000, Yeh, Sinclair wrote: > 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.
That's a good fix, thanks. Committed. Kristian > --- > 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 > > _______________________________________________ > wayland-devel mailing list > wayland-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/wayland-devel _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel