From e25e020ba4da02dade54747e0631b81bed97d0ea Mon Sep 17 00:00:00 2001 From: tasn Date: Tue, 24 Apr 2012 12:16:23 +0000 Subject: [PATCH] Eobj: Fixed a possible bug with object deletion. git-svn-id: http://svn.enlightenment.org/svn/e/trunk/PROTO/eobj@70437 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- lib/eobj.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/lib/eobj.c b/lib/eobj.c index 1222b6d..43a5a0d 100644 --- a/lib/eobj.c +++ b/lib/eobj.c @@ -1013,14 +1013,13 @@ eobj_ref(Eobj *obj) static void _eobj_del_internal(Eobj *obj) { + if (obj->delete) + return; /* We need that for the event callbacks that may ref/unref. */ obj->refcount++; - if (!obj->delete) - { - eobj_event_callback_call(obj, EOBJ_EV_DEL, NULL); - obj->delete = EINA_TRUE; - } + eobj_event_callback_call(obj, EOBJ_EV_DEL, NULL); + obj->delete = EINA_TRUE; obj->refcount--; @@ -1102,10 +1101,7 @@ eobj_del(Eobj *obj) { EOBJ_MAGIC_RETURN(obj, EOBJ_EINA_MAGIC); - if (!obj->delete) - { - _eobj_del_internal(obj); - } + _eobj_del_internal(obj); eobj_unref(obj); } -- 2.7.4