eldbus: manage death of children during invalidate.
authorCedric Bail <cedric@osg.samsung.com>
Wed, 2 May 2018 20:44:01 +0000 (13:44 -0700)
committerWonki Kim <wonki_.kim@samsung.com>
Fri, 1 Jun 2018 02:09:02 +0000 (11:09 +0900)
Differential Revision: https://phab.enlightenment.org/D6091

src/lib/eldbus/eldbus_model_connection.c
src/lib/eldbus/eldbus_model_connection.eo

index 28f0242..2af0aff 100644 (file)
@@ -22,23 +22,21 @@ _eldbus_model_connection_efl_object_constructor(Eo *obj, Eldbus_Model_Connection
 }
 
 static void
-_eldbus_model_connection_efl_object_destructor(Eo *obj, Eldbus_Model_Connection_Data *pd)
+_eldbus_model_connection_efl_object_invalidate(Eo *obj, Eldbus_Model_Connection_Data *pd)
 {
    Eldbus_Children_Slice_Promise *slice;
-   Eo *child;
 
    if (pd->pending) eldbus_pending_cancel(pd->pending);
 
-   EINA_LIST_FREE(pd->childrens, child)
-     efl_del(child);
-
    EINA_LIST_FREE(pd->requests, slice)
      {
         eina_promise_reject(slice->p, EFL_MODEL_ERROR_UNKNOWN);
         free(slice);
      }
 
-   efl_destructor(efl_super(obj, ELDBUS_MODEL_CONNECTION_CLASS));
+   pd->childrens = eina_list_free(pd->childrens);
+
+   efl_invalidate(efl_super(obj, ELDBUS_MODEL_CONNECTION_CLASS));
 }
 
 static void
index 5b392ab..d064027 100644 (file)
@@ -3,7 +3,7 @@ class Eldbus.Model.Connection (Eldbus.Model) {
 
     implements {
         Efl.Object.constructor;
-        Efl.Object.destructor;
+        Efl.Object.invalidate;
         Efl.Model.children_slice_get;
         Efl.Model.children_count { get; }
     }