Eobj: Use xref.
authortasn <tasn>
Tue, 17 Apr 2012 15:36:41 +0000 (15:36 +0000)
committertasn <tasn@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 17 Apr 2012 15:36:41 +0000 (15:36 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/PROTO/eobj@70275 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

examples/evas/evas_obj.c
lib/eobj.c

index 5984d05..69d728c 100644 (file)
@@ -69,12 +69,12 @@ _visibility_set(Eobj *obj, void *class_data __UNUSED__, va_list *list)
 }
 
 static void
-_child_add(Eobj *obj __UNUSED__, void *class_data, va_list *list)
+_child_add(Eobj *obj, void *class_data, va_list *list)
 {
    Widget_Data *wd = class_data;
    Eobj *child;
    child = va_arg(*list, Eobj *);
-   wd->children = eina_list_append(wd->children, eobj_ref(child));
+   wd->children = eina_list_append(wd->children, eobj_xref(child, obj));
 }
 
 static void
@@ -98,7 +98,7 @@ _destructor(Eobj *obj, void *class_data)
    Eobj *child;
    EINA_LIST_FREE(wd->children, child)
      {
-        eobj_del(child);
+        eobj_xunref(child, obj);
      }
 }
 
index 36a8674..a92c5a3 100644 (file)
@@ -880,10 +880,7 @@ eobj_unref(Eobj *obj)
         Eobj *emb_obj;
         EINA_LIST_FOREACH_SAFE(obj->composite_objects, itr, itr_n, emb_obj)
           {
-             /* FIXME: Should probably be unref. */
-             eobj_del(emb_obj);
-             obj->composite_objects =
-                eina_list_remove_list(obj->composite_objects, itr);
+             eobj_composite_object_detach(obj, emb_obj);
           }
 
         _eobj_callback_remove_all(obj);
@@ -1078,7 +1075,7 @@ eobj_shutdown(void)
 EAPI void
 eobj_composite_object_attach(Eobj *obj, Eobj *emb_obj)
 {
-   eobj_ref(emb_obj);
+   eobj_xref(emb_obj, obj);
    obj->composite_objects = eina_list_prepend(obj->composite_objects, emb_obj);
 }
 
@@ -1086,7 +1083,7 @@ EAPI void
 eobj_composite_object_detach(Eobj *obj, Eobj *emb_obj)
 {
    obj->composite_objects = eina_list_remove(obj->composite_objects, emb_obj);
-   eobj_unref(emb_obj);
+   eobj_xunref(emb_obj, obj);
 }
 
 EAPI Eina_Bool