summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Hacohen <tom@stosb.com>2015-10-16 13:01:01 +0100
committerTom Hacohen <tom@stosb.com>2015-10-16 14:53:22 +0100
commitb61556aa87ad134fe04fbdc8f953bd98d941a18e (patch)
treec14c5afae6510fe0f454a625acea3c9e8a23b329
parent8e2e7bd61e102e8e56dd6e2d605548c0856e2a88 (diff)
downloadefl-b61556aa87ad134fe04fbdc8f953bd98d941a18e.tar.gz
Eo: Move mainloop checks inside Eo.
This breaks ABI in a harmless way, and it will give us the ability to drastically improve Eo in the future without breaking ABI again, thus allowing us to declare Eo stable for this release if we choose to.
-rw-r--r--src/lib/eo/Eo.h5
-rw-r--r--src/lib/eo/eo.c7
2 files changed, 5 insertions, 7 deletions
diff --git a/src/lib/eo/Eo.h b/src/lib/eo/Eo.h
index 9bfc060d14..a50a3271f7 100644
--- a/src/lib/eo/Eo.h
+++ b/src/lib/eo/Eo.h
@@ -467,11 +467,10 @@ EAPI extern Eo_Hook_Call eo_hook_call_post;
// cache OP id, get real fct and object data then do the call
#define EO_FUNC_COMMON_OP(Name, DefRet) \
Eo_Op_Call_Data ___call; \
- Eina_Bool ___is_main_loop = eina_main_loop_is(); \
static Eo_Op ___op = EO_NOOP; \
if (___op == EO_NOOP) \
___op = _eo_api_op_id_get(EO_FUNC_COMMON_OP_FUNC(Name)); \
- if (!_eo_call_resolve(#Name, ___op, &___call, ___is_main_loop, __FILE__, __LINE__)) return DefRet; \
+ if (!_eo_call_resolve(#Name, ___op, &___call, __FILE__, __LINE__)) return DefRet; \
_Eo_##Name##_func _func_ = (_Eo_##Name##_func) ___call.func; \
// to define an EAPI function
@@ -538,7 +537,7 @@ EAPI extern Eo_Hook_Call eo_hook_call_post;
EAPI Eo_Op _eo_api_op_id_get(const void *api_func);
// gets the real function pointer and the object data
-EAPI Eina_Bool _eo_call_resolve(const char *func_name, const Eo_Op op, Eo_Op_Call_Data *call, Eina_Bool is_main_loop, const char *file, int line);
+EAPI Eina_Bool _eo_call_resolve(const char *func_name, const Eo_Op op, Eo_Op_Call_Data *call, const char *file, int line);
// start of eo_do barrier, gets the object pointer and ref it, put it on the stask
EAPI Eina_Bool _eo_do_start(const Eo *obj, const Eo_Class *cur_klass, Eina_Bool is_super, const char *file, const char *func, int line);
diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index 80063186b3..5f56dfaee9 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -491,10 +491,9 @@ _eo_do_internal(const Eo *eo_id, const Eo_Class *cur_klass_id,
EAPI Eina_Bool
_eo_do_start(const Eo *eo_id, const Eo_Class *cur_klass_id, Eina_Bool is_super, const char *file EINA_UNUSED, const char *func EINA_UNUSED, int line EINA_UNUSED)
{
- Eina_Bool is_main_loop = eina_main_loop_is();
Eina_Bool ret = EINA_TRUE;
Eo_Stack_Frame *fptr, *pfptr;
- Eo_Call_Stack *stack = _eo_call_stack_get(is_main_loop);
+ Eo_Call_Stack *stack = _eo_call_stack_get(eina_main_loop_is());
if (stack->frame_ptr == stack->last_frame)
_eo_call_stack_resize(stack, EINA_TRUE);
@@ -543,14 +542,14 @@ _eo_do_end(void)
}
EAPI Eina_Bool
-_eo_call_resolve(const char *func_name, const Eo_Op op, Eo_Op_Call_Data *call, Eina_Bool is_main_loop, const char *file, int line)
+_eo_call_resolve(const char *func_name, const Eo_Op op, Eo_Op_Call_Data *call, const char *file, int line)
{
Eo_Stack_Frame *fptr;
const _Eo_Class *klass;
const op_type_funcs *func;
Eina_Bool is_obj;
- fptr = _eo_call_stack_get(is_main_loop)->frame_ptr;
+ fptr = _eo_call_stack_get(eina_main_loop_is())->frame_ptr;
if (EINA_UNLIKELY(!fptr->o.obj))
return EINA_FALSE;