eo2: fix eo_base_data_get(), eo_composite_attach(), eo_composite_detach()
authorJérémy Zurcher <jeremy@asynk.ch>
Thu, 3 Oct 2013 12:17:03 +0000 (14:17 +0200)
committerTom Hacohen <tom@stosb.com>
Thu, 10 Apr 2014 03:20:18 +0000 (04:20 +0100)
src/lib/eo/Eo.h
src/lib/eo/eo.c
src/lib/eo/eo2_base_class.c

index b046f1e..5a9dec3 100644 (file)
@@ -1327,7 +1327,7 @@ eo2_base_data_set(const char *key, const void *data, eo_base_data_free_func free
  * @see #eo_base_data_del
  */
 #define eo_base_data_get(key, data) EO_BASE_ID(EO_BASE_SUB_ID_DATA_GET), EO_TYPECHECK(const char *, key), EO_TYPECHECK(void **, data)
-EAPI void
+EAPI void *
 eo2_base_data_get(const char *key);
 
 /**
index 44a8d4d..b409953 100644 (file)
@@ -2014,7 +2014,11 @@ eo_composite_attach(Eo *comp_obj_id, Eo *parent_id)
 
    comp_obj->composite = EINA_TRUE;
    *comp_dst = comp_obj;
-   eo_do(comp_obj_id, eo_parent_set(parent_id));
+
+   if (comp_obj->klass->desc->version == EO2_VERSION)
+     eo2_do(comp_obj_id, eo2_parent_set(parent_id));
+   else
+     eo_do(comp_obj_id, eo_parent_set(parent_id));
 
    return EINA_TRUE;
 }
@@ -2036,7 +2040,10 @@ eo_composite_detach(Eo *comp_obj_id, Eo *parent_id)
           {
              comp_obj->composite = EINA_FALSE;
              *comp_itr = NULL;
-             eo_do(comp_obj_id, eo_parent_set(NULL));
+             if (comp_obj->klass->desc->version == EO2_VERSION)
+                eo2_do(comp_obj_id, eo2_parent_set(NULL));
+             else
+                eo_do(comp_obj_id, eo_parent_set(NULL));
              return EINA_TRUE;
           }
      }
index 1cbccef..55ef48e 100644 (file)
@@ -102,7 +102,7 @@ _data_get(Eo *obj EINA_UNUSED, void *class_data, const char *key)
 
    return NULL;
 }
-EAPI EO2_VOID_FUNC_BODYV(eo2_base_data_get, EO2_FUNC_CALL(key), const char *key);
+EAPI EO2_FUNC_BODYV(eo2_base_data_get, void*, NULL, EO2_FUNC_CALL(key), const char *key);
 
 static void
 _parent_set(Eo *obj, void *class_data, Eo *parent_id)