[PATCH] Fixed simple-egl tear-down order to prevent a crash on exit time.

Kristian Høgsberg hoegsberg at gmail.com
Wed May 1 10:31:12 PDT 2013


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 at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list