From 47161b869c4d9ffc744bd2215bde3a125410de2e Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Tue, 24 Apr 2012 12:16:23 +0000 Subject: [PATCH] Eobj: Fixed a possible bug with object deletion. SVN revision: 70437 --- legacy/eobj/lib/eobj.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/legacy/eobj/lib/eobj.c b/legacy/eobj/lib/eobj.c index 1222b6d383..43a5a0ddaf 100644 --- a/legacy/eobj/lib/eobj.c +++ b/legacy/eobj/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); }