From 168d2a14460918f8b658add7e5d71807bd24ee19 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Thu, 9 Mar 2017 16:16:28 -0800 Subject: [PATCH] efreet: avoid crash during shutdown due to Ecore_Event queue. --- src/lib/efreet/efreet_cache.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/lib/efreet/efreet_cache.c b/src/lib/efreet/efreet_cache.c index 82ceaca802..a9d5bec428 100644 --- a/src/lib/efreet/efreet_cache.c +++ b/src/lib/efreet/efreet_cache.c @@ -274,9 +274,12 @@ efreet_cache_init(void) ERR("Failed to create directory '%s'", buf); } - EFREET_EVENT_ICON_CACHE_UPDATE = ecore_event_type_new(); - EFREET_EVENT_DESKTOP_CACHE_UPDATE = ecore_event_type_new(); - EFREET_EVENT_DESKTOP_CACHE_BUILD = ecore_event_type_new(); + if (EFREET_EVENT_ICON_CACHE_UPDATE == 0) + { + EFREET_EVENT_ICON_CACHE_UPDATE = ecore_event_type_new(); + EFREET_EVENT_DESKTOP_CACHE_UPDATE = ecore_event_type_new(); + EFREET_EVENT_DESKTOP_CACHE_BUILD = ecore_event_type_new(); + } themes = eina_hash_string_superfast_new(EINA_FREE_CB(efreet_cache_icon_theme_free)); icons = eina_hash_string_superfast_new(EINA_FREE_CB(efreet_cache_icon_free)); @@ -342,6 +345,10 @@ efreet_cache_shutdown(void) { Efreet_Old_Cache *d; + ecore_event_type_flush(EFREET_EVENT_ICON_CACHE_UPDATE, + EFREET_EVENT_DESKTOP_CACHE_UPDATE, + EFREET_EVENT_DESKTOP_CACHE_BUILD); + IF_RELEASE(theme_name); icon_cache = efreet_cache_close(icon_cache);