eo2: detach children when object is deleted.
authorTom Hacohen <tom@stosb.com>
Fri, 8 Nov 2013 12:24:40 +0000 (12:24 +0000)
committerTom Hacohen <tom@stosb.com>
Thu, 10 Apr 2014 03:20:19 +0000 (04:20 +0100)
src/lib/eo/eo2_base_class.c

index db257af..b032b01 100644 (file)
@@ -933,8 +933,14 @@ EAPI EO2_VOID_FUNC_BODY(eo2_constructor);
 static void
 _destructor(Eo *obj, void *class_data)
 {
+   Private_Data *pd = class_data;
+   Eo *child;
+
    DBG("%p - %s.", obj, eo_class_name_get(MY_CLASS));
 
+   EINA_LIST_FREE(pd->children, child)
+      eo2_do(child, eo2_parent_set(NULL));
+
    _eo_generic_data_del_all(class_data);
    _wref_destruct(class_data);
    _eo_callback_remove_all(class_data);