summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2020-03-24 20:08:46 +0100
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2020-03-26 13:58:09 +0100
commit8e20d28dfe63370423b240565c3487e5281735c2 (patch)
treed81da9adf45f9de6ca54552418f4aae333a9edf3
parent790a63c15f92a9fc5928c78c7f3c5b69f8e8d1fd (diff)
downloadefl-8e20d28dfe63370423b240565c3487e5281735c2.tar.gz
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
-rw-r--r--src/lib/eo/eo.c5
1 files 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);