From b19abab37c45f07d74f47b6709c7fc7ffa05e498 Mon Sep 17 00:00:00 2001 From: cedric Date: Wed, 17 Jun 2009 12:38:15 +0000 Subject: [PATCH] * ecore: Fix a segv during ecore_shutdown. git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@41075 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/ecore/ecore_events.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib/ecore/ecore_events.c b/src/lib/ecore/ecore_events.c index 8b32ca4..fd69557 100644 --- a/src/lib/ecore/ecore_events.c +++ b/src/lib/ecore/ecore_events.c @@ -298,15 +298,15 @@ _ecore_event_shutdown(void) while (events) _ecore_event_del(events); for (i = 0; i < event_handlers_num; i++) { - while (event_handlers[i]) + while ((eh = event_handlers[i])) { event_handlers[i] = (Ecore_Event_Handler *) eina_inlist_remove(EINA_INLIST_GET(event_handlers[i]), EINA_INLIST_GET(event_handlers[i])); - ECORE_MAGIC_SET(event_handlers[i], ECORE_MAGIC_NONE); - free(event_handlers[i]); + ECORE_MAGIC_SET(eh, ECORE_MAGIC_NONE); + if (!eh->delete_me) free(eh); } } EINA_LIST_FREE(event_handlers_delete_list, eh) - free(eh); + free(eh); if (event_handlers) free(event_handlers); event_handlers = NULL; event_handlers_num = 0; -- 2.7.4