bu5hm4n pushed a commit to branch master.

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

commit 8e20d28dfe63370423b240565c3487e5281735c2
Author: Marcel Hollerbach <[email protected]>
Date:   Tue Mar 24 20:08:46 2020 +0100

    eo: move all call assignment
    
    this improves the cache performance a lot. Caches are only invalidated
    once, and not multiple times.
    
    Reviewed-by: Carsten Haitzler (Rasterman) <rasterman.com>
    Differential Revision: https://phab.enlightenment.org/D11592
---
 src/lib/eo/eo.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index e0988b9f28..499a4800d1 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -548,7 +548,6 @@ _efl_object_call_resolve(Eo *eo_id, const char *func_name, 
Efl_Object_Op_Call_Da
 
    if (EINA_UNLIKELY(!eo_id)) goto on_null;
 
-   call->eo_id = eo_id;
 
    EO_OBJ_POINTER_RETURN_VAL_PROXY(eo_id, _obj, EINA_FALSE);
 
@@ -562,9 +561,7 @@ _efl_object_call_resolve(Eo *eo_id, const char *func_name, 
Efl_Object_Op_Call_Da
         // hot path of the function
         goto obj_super;
      }
-
 obj_super_back:
-   call->obj = obj;
    _efl_ref(_obj);
 
    main_klass =  klass;
@@ -589,6 +586,8 @@ ok_cur_klass_back:
 
    if (EINA_LIKELY(func->func && func->src))
      {
+        call->eo_id = eo_id;
+        call->obj = obj;
         call->func = func->func;
         call->data = _efl_data_scope_get(obj, func->src);
 

-- 


Reply via email to