tasn pushed a commit to branch efl-1.11. http://git.enlightenment.org/core/efl.git/commit/?id=9267ff4be193681734c717c595b6e84059f65020
commit 9267ff4be193681734c717c595b6e84059f65020 Author: Cedric BAIL <[email protected]> Date: Mon Oct 27 23:23:45 2014 +0100 eo: fix composite to actually work. So I don't really understand why the code was not there before, but it resulted in my experiment of making a combobox for elementary just impossible. Now it work at least. --- src/lib/eo/eo.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c index b5aaadf..aed1932 100644 --- a/src/lib/eo/eo.c +++ b/src/lib/eo/eo.c @@ -595,6 +595,9 @@ _eo_call_resolve(const char *func_name, const Eo_Op op, Eo_Op_Call_Data *call, c else { func = _dich_func_get(klass, op); + + if (!func) + goto end; } if (EINA_UNLIKELY(func == NULL)) @@ -647,10 +650,10 @@ end: Eo *emb_obj_id; EINA_LIST_FOREACH(((_Eo_Object *) fptr->o.obj)->composite_objects, itr, emb_obj_id) { - _Eo_Object *emb_obj = _eo_obj_pointer_get((Eo_Id)emb_obj_id); + _Eo_Object *emb_obj = _eo_obj_pointer_get((Eo_Id)emb_obj_id); - if (!emb_obj) - goto end2; + if (!emb_obj) + continue; func = _dich_func_get(emb_obj->klass, op); if (func == NULL) @@ -668,7 +671,6 @@ end: } } -end2: { const _Eo_Class *main_klass; main_klass = (is_obj) ? fptr->o.obj->klass : fptr->o.kls; --
