diff options
Diffstat (limited to 'src/lib/eo/eo.c')
-rw-r--r-- | src/lib/eo/eo.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c index 0113434..db96b24 100644 --- a/src/lib/eo/eo.c +++ b/src/lib/eo/eo.c | |||
@@ -1933,6 +1933,9 @@ efl_ref(const Eo *obj_id) | |||
1933 | ++(obj->user_refcount); | 1933 | ++(obj->user_refcount); |
1934 | if (EINA_UNLIKELY(obj->user_refcount == 1)) | 1934 | if (EINA_UNLIKELY(obj->user_refcount == 1)) |
1935 | _efl_ref(obj); | 1935 | _efl_ref(obj); |
1936 | else if (EINA_UNLIKELY(obj->ownership_track && obj->user_refcount == 2)) | ||
1937 | efl_event_callback_call((Eo *) obj_id, EFL_EVENT_OWNERSHIP_SHARED, NULL); | ||
1938 | |||
1936 | #ifdef EO_DEBUG | 1939 | #ifdef EO_DEBUG |
1937 | _eo_log_obj_ref_op(obj, EO_REF_OP_REF); | 1940 | _eo_log_obj_ref_op(obj, EO_REF_OP_REF); |
1938 | #endif | 1941 | #endif |
@@ -1991,6 +1994,10 @@ efl_unref(const Eo *obj_id) | |||
1991 | } | 1994 | } |
1992 | _efl_unref(obj); | 1995 | _efl_unref(obj); |
1993 | } | 1996 | } |
1997 | else if (EINA_UNLIKELY(obj->ownership_track && obj->user_refcount == 1)) | ||
1998 | { | ||
1999 | efl_event_callback_call((Eo *) obj_id, EFL_EVENT_OWNERSHIP_UNIQUE, NULL); | ||
2000 | } | ||
1994 | 2001 | ||
1995 | _apply_auto_unref(obj, obj_id); | 2002 | _apply_auto_unref(obj, obj_id); |
1996 | 2003 | ||