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

-- 


Reply via email to