eo: add events when object get invalidated and loose all its reference matching other...
authorCedric BAIL <cedric@osg.samsung.com>
Fri, 30 Mar 2018 16:53:59 +0000 (09:53 -0700)
committerWonki Kim <wonki_.kim@samsung.com>
Tue, 10 Apr 2018 11:22:05 +0000 (20:22 +0900)
src/lib/eo/efl_object.eo
src/lib/eo/eo_base_class.c

index 206d135..249250d 100644 (file)
@@ -306,6 +306,8 @@ abstract Efl.Object ()
       callback,add @hot; [[A callback was added.]]
       callback,del @hot; [[A callback was deleted.]]
       del @hot; [[Object is being deleted.]]
+      invalidate @hot; [[Object is being invalidated and loosing its parent.]]
+      noref @hot; [[Object has lost its last reference, only parent relationship is keeping it alive.]]
       destruct @hot; [[Object has been fully destroyed. It can not be used
          beyond this point. This event should only serve to clean up any
          dangling pointer.]]
index 183ed0e..4dfde15 100644 (file)
@@ -2173,14 +2173,17 @@ _efl_object_finalize(Eo *obj, Efl_Object_Data *pd EINA_UNUSED)
 static void
 _efl_object_invalidate(Eo *obj, Efl_Object_Data *pd)
 {
+   efl_event_callback_call(obj, EFL_EVENT_INVALIDATE, NULL);
+
    _efl_pending_futures_clear(pd);
    efl_parent_set(obj, NULL);
    pd->invalidate = EINA_TRUE;
 }
 
 static void
-_efl_object_noref(Eo *obj EINA_UNUSED, Efl_Object_Data *pd EINA_UNUSED)
+_efl_object_noref(Eo *obj, Efl_Object_Data *pd EINA_UNUSED)
 {
+   efl_event_callback_call(obj, EFL_EVENT_NOREF, NULL);
 }
 
 EOLIAN static void