From 49e645d695a65c31dc6d32e3d432bc26140fee22 Mon Sep 17 00:00:00 2001 From: Chris Michael Date: Fri, 4 Dec 2015 11:40:54 -0500 Subject: [PATCH] ecore-evas-wayland: Properly cleanup ecore_wl2 during error If we fail to connect to an existing wayland display, then we should properly cleanup (call ecore_wl2_shutdown) before exiting @fix Signed-off-by: Chris Michael --- .../engines/wayland/ecore_evas_wayland_egl.c | 12 ++++++------ .../engines/wayland/ecore_evas_wayland_shm.c | 9 ++++----- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c index 8f4fea9436..b6b0189a5c 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c @@ -146,7 +146,7 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, unsigned int parent, if (!ewd) { ERR("Failed to connect to Wayland Display %s", disp_name); - return NULL; + goto conn_err; } if (!(ee = calloc(1, sizeof(Ecore_Evas)))) @@ -284,12 +284,12 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, unsigned int parent, return ee; - err: +err: ecore_evas_free(ee); - return NULL; - - ee_err: - ecore_wl_shutdown(); +ee_err: + ecore_wl2_display_disconnect(ewd); +conn_err: + ecore_wl2_shutdown(); return NULL; } diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c index c516de62cd..fb1e25bf25 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c @@ -145,7 +145,7 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, unsigned int parent, if (!ewd) { ERR("Failed to connect to Wayland Display %s", disp_name); - return NULL; + goto conn_err; } if (!(ee = calloc(1, sizeof(Ecore_Evas)))) @@ -280,12 +280,11 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, unsigned int parent, return ee; - err: +err: ecore_evas_free(ee); - return NULL; - - ee_err: +ee_err: ecore_wl2_display_disconnect(ewd); +conn_err: ecore_wl2_shutdown(); return NULL; }