tasn pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=791f1e5f6cde2952c86379ab0e7e52fd1b3624a4

commit 791f1e5f6cde2952c86379ab0e7e52fd1b3624a4
Author: Tom Hacohen <[email protected]>
Date:   Tue Aug 26 16:36:25 2014 +0100

    Ecore exe: Start using the eo destructor.
---
 src/lib/ecore/ecore_exe.c  | 21 +++++++++++++--------
 src/lib/ecore/ecore_exe.eo |  1 +
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/lib/ecore/ecore_exe.c b/src/lib/ecore/ecore_exe.c
index 40e35d3..d315999 100644
--- a/src/lib/ecore/ecore_exe.c
+++ b/src/lib/ecore/ecore_exe.c
@@ -940,15 +940,24 @@ ecore_exe_tag_get(const Ecore_Exe *obj)
 EAPI void *
 ecore_exe_free(Ecore_Exe *obj)
 {
-   void *data;
-   int ok = 0;
-   int result;
-
    EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
    Ecore_Exe_Data *exe = eo_data_scope_get(obj, MY_CLASS);
    if (!eo_isa(obj, MY_CLASS))
       return NULL;
 
+   void *data = exe->data;
+   eo_del(obj);
+
+   return data;
+}
+
+EOLIAN static void
+_ecore_exe_eo_base_destructor(Eo *obj, Ecore_Exe_Data *exe)
+{
+   void *data;
+   int ok = 0;
+   int result;
+
    data = exe->data;
 
    if (exe->pre_free_cb)
@@ -990,10 +999,6 @@ ecore_exe_free(Ecore_Exe *obj)
 
    exes = eina_list_remove(exes, obj);
    IF_FREE(exe->tag);
-
-   eo_del(obj);
-
-   return data;
 }
 
 EAPI void
diff --git a/src/lib/ecore/ecore_exe.eo b/src/lib/ecore/ecore_exe.eo
index 59aabb7..dcb624c 100644
--- a/src/lib/ecore/ecore_exe.eo
+++ b/src/lib/ecore/ecore_exe.eo
@@ -20,6 +20,7 @@ class Ecore.Exe (Eo.Base, Efl.Control)
 
    }
    implements {
+        Eo.Base.destructor;
         Eo.Base.finalize;
         Efl.Control.suspend.set;
    }

-- 


Reply via email to