ecore: properly handle promise failure when each member has not been fulfilled yet.

This commit is contained in:
Cedric Bail 2016-10-25 15:21:51 -07:00
parent baf2187d55
commit 919829aa7d
1 changed files with 4 additions and 2 deletions

View File

@ -39,6 +39,7 @@ struct _Efl_Promise_Data
static void static void
_efl_promise_msg_free(Efl_Promise_Msg *msg) _efl_promise_msg_free(Efl_Promise_Msg *msg)
{ {
if (!msg) return ;
if (msg->free_cb) if (msg->free_cb)
msg->free_cb(msg->value); msg->free_cb(msg->value);
free(msg); free(msg);
@ -737,6 +738,7 @@ _efl_promise_all_free(Efl_Promise_All *all)
EINA_ARRAY_ITER_NEXT(&all->members, i, fa, iterator) EINA_ARRAY_ITER_NEXT(&all->members, i, fa, iterator)
{ {
if (fa->d)
EINA_REFCOUNT_UNREF(fa->d) EINA_REFCOUNT_UNREF(fa->d)
_efl_promise_msg_free(fa->d); _efl_promise_msg_free(fa->d);
} }