q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7b2ef21b909d5cf0066d4cdca4e640d1ce891688
commit 7b2ef21b909d5cf0066d4cdca4e640d1ce891688 Author: Daniel Kolesa <d.kol...@samsung.com> Date: Wed Jan 23 19:28:25 2019 +0100 eolian: check old impl status before actually trying to extend it Since _extend_impl always marks the impl at least IMPL_STATUS_NONE, we need to retrieve the original status before calling into it, or it will get overwritten and will inadvertently disable some of the checks. --- src/lib/eolian/database_validate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/eolian/database_validate.c b/src/lib/eolian/database_validate.c index d2b2f8fa04..240a0f6536 100644 --- a/src/lib/eolian/database_validate.c +++ b/src/lib/eolian/database_validate.c @@ -713,6 +713,7 @@ _db_fill_callables(Eolian_Class *cl, Eolian_Class *icl, Eina_Hash *fs, Eina_Bool Eina_Bool allow_impl = parent || (icl->type == EOLIAN_CLASS_MIXIN); EINA_LIST_FOREACH(icl->callables, l, impl) { + Impl_Status ost = (Impl_Status)eina_hash_find(fs, &impl->foo_id); /* while regular classes are already fully checked and one may * assume that we could just make everything coming from regular * classes IMPL_STATUS_FULL, we still need to account for all of @@ -722,7 +723,6 @@ _db_fill_callables(Eolian_Class *cl, Eolian_Class *icl, Eina_Hash *fs, Eina_Bool */ if (_extend_impl(fs, impl, !allow_impl)) { - Impl_Status ost = (Impl_Status)eina_hash_find(fs, &impl->foo_id); /* we had an unimplementation in the list, replace * instead of appending the new thing to callables * this is a corner case, it shouldn't happen much --