summaryrefslogtreecommitdiff
path: root/src/lib/eo/eo_private.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/eo/eo_private.h')
-rw-r--r--src/lib/eo/eo_private.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/lib/eo/eo_private.h b/src/lib/eo/eo_private.h
index 7ea5014..a238618 100644
--- a/src/lib/eo/eo_private.h
+++ b/src/lib/eo/eo_private.h
@@ -279,21 +279,22 @@ _eo_unref(_Eo_Object *obj)
279 --(obj->refcount); 279 --(obj->refcount);
280 if (obj->refcount == 0) 280 if (obj->refcount == 0)
281 { 281 {
282 if (obj->del_triggered) 282 if (obj->destructed)
283 { 283 {
284 ERR("Object %p deletion already triggered. You wrongly call eo_unref() within a destructor.", obj); 284 ERR("Object %p already destructed.", _eo_id_get(obj));
285 return; 285 return;
286 } 286 }
287 obj->del_triggered = EINA_TRUE;
288 287
289 if (obj->destructed) 288 if (obj->del_triggered)
290 { 289 {
291 ERR("Object %p already destructed.", obj); 290 ERR("Object %p deletion already triggered. You wrongly call eo_unref() within a destructor.", _eo_id_get(obj));
292 return; 291 return;
293 } 292 }
293 obj->del_triggered = EINA_TRUE;
294 294
295 _eo_del_internal(__FILE__, __LINE__, obj); 295 _eo_del_internal(__FILE__, __LINE__, obj);
296 296
297 obj->del_triggered = EINA_FALSE;
297#ifdef EO_DEBUG 298#ifdef EO_DEBUG
298 /* If for some reason it's not empty, clear it. */ 299 /* If for some reason it's not empty, clear it. */
299 while (obj->xrefs) 300 while (obj->xrefs)