summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean Guyomarc'h <jean@guyomarch.bzh>2018-01-09 00:01:07 +0100
committerJean Guyomarc'h <jean@guyomarch.bzh>2018-01-09 00:01:07 +0100
commit7bc78b3e68e8f0678883378a81f3f4e1cca4f57a (patch)
treeadc07c2b45f7e7d74fd231cdccfaffd2d560dc43
parent8e5f14978b811c54b502dcf2098c3c684378a11f (diff)
exp: explode the cache
This is still better! Before we are manipilating only machine words. We could drop the structure, put that in a dedicated data section. This would allow us to handle re-generation by memsetting the whole section.
-rw-r--r--src/lib/eo/Eo.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lib/eo/Eo.h b/src/lib/eo/Eo.h
index 07af38cbfe..96f4e2082d 100644
--- a/src/lib/eo/Eo.h
+++ b/src/lib/eo/Eo.h
@@ -1165,7 +1165,7 @@ typedef struct _Efl_Object_Op_Call_Data
1165 void *extn4; // for future use to avoid ABI issues 1165 void *extn4; // for future use to avoid ABI issues
1166} Efl_Object_Op_Call_Data; 1166} Efl_Object_Op_Call_Data;
1167 1167
1168#define EFL_OBJECT_CALL_CACHE_SIZE 1 1168#define EFL_OBJECT_CALL_CACHE_SIZE 0
1169 1169
1170typedef struct _Efl_Object_Call_Cache_Index 1170typedef struct _Efl_Object_Call_Cache_Index
1171{ 1171{
@@ -1193,7 +1193,7 @@ typedef struct _Efl_Object_Call_Cache
1193# endif 1193# endif
1194#endif 1194#endif
1195 Efl_Object_Op op; 1195 Efl_Object_Op op;
1196 unsigned int generation; 1196// unsigned int generation;
1197} Efl_Object_Call_Cache; 1197} Efl_Object_Call_Cache;
1198 1198
1199// to pass the internal function call to EFL_FUNC_BODY (as Func parameter) 1199// to pass the internal function call to EFL_FUNC_BODY (as Func parameter)
@@ -1238,7 +1238,7 @@ __##Name##_op_create: EINA_COLD \
1238 if (EINA_UNLIKELY(___cache.op != EFL_NOOP)) memset(&___cache, 0, sizeof(___cache)); \ 1238 if (EINA_UNLIKELY(___cache.op != EFL_NOOP)) memset(&___cache, 0, sizeof(___cache)); \
1239 ___cache.op = _efl_object_op_api_id_get(EFL_FUNC_COMMON_OP_FUNC(Name), Obj, #Name, __FILE__, __LINE__); \ 1239 ___cache.op = _efl_object_op_api_id_get(EFL_FUNC_COMMON_OP_FUNC(Name), Obj, #Name, __FILE__, __LINE__); \
1240 if (___cache.op == EFL_NOOP) goto __##Name##_failed; \ 1240 if (___cache.op == EFL_NOOP) goto __##Name##_failed; \
1241 ___cache.generation = _efl_object_init_generation; \ 1241 /*___cache.generation = _efl_object_init_generation;*/ \
1242 goto __##Name##_op_create_done; \ 1242 goto __##Name##_op_create_done; \
1243__##Name##_failed: EINA_COLD\ 1243__##Name##_failed: EINA_COLD\
1244 ErrorCase \ 1244 ErrorCase \