forked from enlightenment/efl
ecore: properly handle promise failure when each member has not been fulfilled yet.
This commit is contained in:
parent
baf2187d55
commit
919829aa7d
|
@ -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,8 +738,9 @@ _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)
|
||||||
{
|
{
|
||||||
EINA_REFCOUNT_UNREF(fa->d)
|
if (fa->d)
|
||||||
_efl_promise_msg_free(fa->d);
|
EINA_REFCOUNT_UNREF(fa->d)
|
||||||
|
_efl_promise_msg_free(fa->d);
|
||||||
}
|
}
|
||||||
efl_del(all->promise);
|
efl_del(all->promise);
|
||||||
all->promise = NULL;
|
all->promise = NULL;
|
||||||
|
|
Loading…
Reference in New Issue