Merge pull request #161 from acrisci/bug/egl-segfault
unset egl current before terminating display
This commit is contained in:
		
						commit
						80a1cc01e9
					
				|  | @ -175,13 +175,14 @@ bool wlr_egl_init(struct wlr_egl *egl, EGLenum platform, | ||||||
| 	return true; | 	return true; | ||||||
| 
 | 
 | ||||||
| error: | error: | ||||||
|  | 	eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); | ||||||
| 	eglTerminate(egl->display); | 	eglTerminate(egl->display); | ||||||
| 	eglReleaseThread(); | 	eglReleaseThread(); | ||||||
| 	eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); |  | ||||||
| 	return false; | 	return false; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void wlr_egl_free(struct wlr_egl *egl) { | void wlr_egl_free(struct wlr_egl *egl) { | ||||||
|  | 	eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); | ||||||
| 	if (egl->wl_display && egl->eglUnbindWaylandDisplayWL) { | 	if (egl->wl_display && egl->eglUnbindWaylandDisplayWL) { | ||||||
| 		egl->eglUnbindWaylandDisplayWL(egl->display, egl->wl_display); | 		egl->eglUnbindWaylandDisplayWL(egl->display, egl->wl_display); | ||||||
| 	} | 	} | ||||||
|  | @ -189,7 +190,6 @@ void wlr_egl_free(struct wlr_egl *egl) { | ||||||
| 	eglDestroyContext(egl->display, egl->context); | 	eglDestroyContext(egl->display, egl->context); | ||||||
| 	eglTerminate(egl->display); | 	eglTerminate(egl->display); | ||||||
| 	eglReleaseThread(); | 	eglReleaseThread(); | ||||||
| 	eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool wlr_egl_bind_display(struct wlr_egl *egl, struct wl_display *local_display) { | bool wlr_egl_bind_display(struct wlr_egl *egl, struct wl_display *local_display) { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue