From 8e20d28dfe63370423b240565c3487e5281735c2 Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Tue, 24 Mar 2020 20:08:46 +0100 Subject: [PATCH] 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) 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);