From: Michael Olbrich Date: Tue, 29 Aug 2017 09:51:20 +0000 (+0200) Subject: egl/dri2: only destroy created objects X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=81d5c31631840db704337489cf677cc596da79f5;p=mesa.git egl/dri2: only destroy created objects dri2_display_destroy may be called by dri2_initialize_wayland_drm() if initialization fails. In this case, these objects may not be initialized. Cc: mesa-stable@lists.freedesktop.org Signed-off-by: Michael Olbrich Reviewed-by: Tapani Pälli Reviewed-by: Emil Velikov --- diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 3a64f3a5b64..af238a974c9 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -980,9 +980,12 @@ dri2_display_destroy(_EGLDisplay *disp) zwp_linux_dmabuf_v1_destroy(dri2_dpy->wl_dmabuf); if (dri2_dpy->wl_shm) wl_shm_destroy(dri2_dpy->wl_shm); - wl_registry_destroy(dri2_dpy->wl_registry); - wl_event_queue_destroy(dri2_dpy->wl_queue); - wl_proxy_wrapper_destroy(dri2_dpy->wl_dpy_wrapper); + if (dri2_dpy->wl_registry) + wl_registry_destroy(dri2_dpy->wl_registry); + if (dri2_dpy->wl_queue) + wl_event_queue_destroy(dri2_dpy->wl_queue); + if (dri2_dpy->wl_dpy_wrapper) + wl_proxy_wrapper_destroy(dri2_dpy->wl_dpy_wrapper); u_vector_finish(&dri2_dpy->wl_modifiers.argb8888); u_vector_finish(&dri2_dpy->wl_modifiers.xrgb8888); u_vector_finish(&dri2_dpy->wl_modifiers.rgb565);