tasn pushed a commit to branch master.

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

commit aab8389a6f07273530cc28905ef36578efa6a5c3
Author: Tom Hacohen <t...@stosb.com>
Date:   Sun Jun 5 09:58:19 2016 +0100

    Eo: remove strict class checking for composite objects.
    
    When compositing objects, we were checking that class_of(B) is in A's
    inheritance tree before allowing attaching B as a composite object of A.
    This is wrong and breaks a few cases, for example: B extends a class that
    is in A's inheritance tree or B implements an interface that is in A's
    inheritance tree.
    
    Thanks to Marcel for reporting.
---
 src/lib/eo/eo_base_class.c                              | 5 -----
 src/tests/eo/composite_objects/composite_objects_main.c | 2 --
 2 files changed, 7 deletions(-)

diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c
index 5d8601b..e378b70 100644
--- a/src/lib/eo/eo_base_class.c
+++ b/src/lib/eo/eo_base_class.c
@@ -1242,11 +1242,6 @@ _eo_base_composite_attach(Eo *parent_id, Eo_Base_Data 
*pd EINA_UNUSED, Eo *comp_
    EO_OBJ_POINTER_RETURN_VAL(comp_obj_id, comp_obj, EINA_FALSE);
    EO_OBJ_POINTER_RETURN_VAL(parent_id, parent, EINA_FALSE);
 
-   if (!eo_isa(parent_id, _eo_class_id_get(comp_obj->klass)))
-     {
-        return EINA_FALSE;
-     }
-
    Eo_Base_Data *comp_pd = eo_data_scope_get(comp_obj_id, EO_BASE_CLASS);
    /* Don't composite if we already have a composite object of this type */
      {
diff --git a/src/tests/eo/composite_objects/composite_objects_main.c 
b/src/tests/eo/composite_objects/composite_objects_main.c
index b32d5f9..e424192 100644
--- a/src/tests/eo/composite_objects/composite_objects_main.c
+++ b/src/tests/eo/composite_objects/composite_objects_main.c
@@ -73,8 +73,6 @@ main(int argc, char *argv[])
    fail_if(!eo_composite_part_is(simple));
    fail_if(eo_composite_attach(obj, simple));
 
-   fail_if(eo_composite_attach(simple, obj));
-
    eo_unref(simple);
    eo_unref(obj);
 

-- 


Reply via email to