felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=2e441c3f5eaa2ccc95e6c7012722f68957bc9701
commit 2e441c3f5eaa2ccc95e6c7012722f68957bc9701 Author: Larry Jr <larry....@gmail.com> Date: Mon Jun 6 02:20:44 2016 -0300 eina: eina_promise_all callback cast removed --- src/lib/eina/eina_promise.c | 50 +++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/src/lib/eina/eina_promise.c b/src/lib/eina/eina_promise.c index 9e34481..7ce0112 100644 --- a/src/lib/eina/eina_promise.c +++ b/src/lib/eina/eina_promise.c @@ -15,6 +15,19 @@ static int _eina_promise_log_dom = -1; #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_promise_log_dom, __VA_ARGS__) +#define _EINA_PROMISE_NULL_CHECK(promise, v) \ + if(!promise) \ + { \ + eina_error_set(EINA_ERROR_PROMISE_NULL); \ + return v; \ + } +#define EINA_MAGIC_CHECK_PROMISE(promise) \ + do if(!EINA_MAGIC_CHECK(promise, EINA_MAGIC_PROMISE)) \ + {EINA_MAGIC_FAIL(promise, EINA_MAGIC_PROMISE);} while(0) +#define EINA_MAGIC_CHECK_PROMISE_OWNER(promise) \ + do {if(!EINA_MAGIC_CHECK(promise, EINA_MAGIC_PROMISE_OWNER)) \ + {EINA_MAGIC_FAIL(promise, EINA_MAGIC_PROMISE_OWNER);} } while(0) + typedef struct _Eina_Promise_Then_Cb _Eina_Promise_Then_Cb; typedef struct _Eina_Promise_Progress_Cb _Eina_Promise_Progress_Cb; typedef struct _Eina_Promise_Cancel_Cb _Eina_Promise_Cancel_Cb; @@ -632,9 +645,11 @@ eina_promise_owner_default_call_then(Eina_Promise_Owner* promise) } static void -_eina_promise_all_compose_then_cb(_Eina_Promise_Default_Owner* promise, void* value EINA_UNUSED, Eina_Promise* promise_then EINA_UNUSED) +_eina_promise_all_compose_then_cb(void *data, void* value EINA_UNUSED) { + _Eina_Promise_Default_Owner* promise = data; _Eina_Promise_Iterator* iterator; + EINA_MAGIC_CHECK_PROMISE_OWNER(&promise->owner_vtable); if (!promise->promise.has_finished) { @@ -647,8 +662,10 @@ _eina_promise_all_compose_then_cb(_Eina_Promise_Default_Owner* promise, void* va } static void -_eina_promise_all_compose_error_then_cb(_Eina_Promise_Default_Owner* promise, Eina_Error error, Eina_Promise* promise_then EINA_UNUSED) +_eina_promise_all_compose_error_then_cb(void *data, Eina_Error error) { + _Eina_Promise_Default_Owner* promise = data; + EINA_MAGIC_CHECK_PROMISE_OWNER(&promise->owner_vtable); if (!promise->promise.has_finished) { promise->promise.has_finished = promise->promise.has_errored = EINA_TRUE; @@ -693,7 +710,6 @@ eina_promise_all(Eina_Iterator* it) sizeof(_Eina_Promise_Default_Owner*)*eina_array_count_get(promises)); internal_it = (_Eina_Promise_Iterator*)&promise->value[0]; _eina_promise_iterator_setup(internal_it, promises); - eina_array_free(promises); promise->promise.value_free_cb = (Eina_Promise_Free_Cb)&_eina_promise_all_free; @@ -702,10 +718,11 @@ eina_promise_all(Eina_Iterator* it) for (;cur_promise != last; ++cur_promise) { eina_promise_ref(*cur_promise); // We need to keep the value alive until this promise is freed - eina_promise_then(*cur_promise, (Eina_Promise_Cb)&_eina_promise_all_compose_then_cb, - (Eina_Promise_Error_Cb)&_eina_promise_all_compose_error_then_cb, promise); + eina_promise_then(*cur_promise, &_eina_promise_all_compose_then_cb, + &_eina_promise_all_compose_error_then_cb, promise); } + eina_array_free(promises); return &promise->promise.vtable; } @@ -806,8 +823,9 @@ _eina_promise_race_free(_Eina_Promise_Race_Value_Type* value) } static void -_eina_promise_race_compose_then_cb(struct _Eina_Promise_Race_Information* info, void* value EINA_UNUSED, Eina_Promise* promise_then EINA_UNUSED) +_eina_promise_race_compose_then_cb(void *data, void* value EINA_UNUSED) { + struct _Eina_Promise_Race_Information* info = data; _Eina_Promise_Default_Owner* race_promise; _Eina_Promise_Race_Value_Type *race_value; @@ -823,8 +841,9 @@ _eina_promise_race_compose_then_cb(struct _Eina_Promise_Race_Information* info, } static void -_eina_promise_race_compose_error_then_cb(struct _Eina_Promise_Race_Information* info, Eina_Error error, Eina_Promise* promise_then EINA_UNUSED) +_eina_promise_race_compose_error_then_cb(void *data, Eina_Error error) { + struct _Eina_Promise_Race_Information* info = data; _Eina_Promise_Default_Owner* race_promise; _Eina_Promise_Race_Value_Type *race_value; @@ -876,9 +895,9 @@ eina_promise_race(Eina_Iterator* it) { cur_promise->promise = eina_array_data_get(promises, i); cur_promise->self = promise; - eina_promise_then(cur_promise->promise, (Eina_Promise_Cb)&_eina_promise_race_compose_then_cb, - (Eina_Promise_Error_Cb)&_eina_promise_race_compose_error_then_cb, cur_promise); eina_promise_ref(cur_promise->promise); // We need to keep the value alive until this promise is freed + eina_promise_then(cur_promise->promise, &_eina_promise_race_compose_then_cb, + &_eina_promise_race_compose_error_then_cb, cur_promise); } eina_array_free(promises); @@ -906,19 +925,6 @@ eina_promise_then(Eina_Promise* promise, Eina_Promise_Cb callback, promise->then(promise, callback, error_cb, data); } -#define _EINA_PROMISE_NULL_CHECK(promise, v) \ - if(!promise) \ - { \ - eina_error_set(EINA_ERROR_PROMISE_NULL); \ - return v; \ - } -#define EINA_MAGIC_CHECK_PROMISE(promise) \ - do if(!EINA_MAGIC_CHECK(promise, EINA_MAGIC_PROMISE)) \ - {EINA_MAGIC_FAIL(promise, EINA_MAGIC_PROMISE);} while(0) -#define EINA_MAGIC_CHECK_PROMISE_OWNER(promise) \ - do {if(!EINA_MAGIC_CHECK(promise, EINA_MAGIC_PROMISE_OWNER)) \ - {EINA_MAGIC_FAIL(promise, EINA_MAGIC_PROMISE_OWNER);} } while(0) - EAPI void eina_promise_owner_value_set(Eina_Promise_Owner* promise, const void* value, Eina_Promise_Free_Cb free) { --