cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=919829aa7d9f9302f30cc245f593793ba8753b46

commit 919829aa7d9f9302f30cc245f593793ba8753b46
Author: Cedric Bail <[email protected]>
Date:   Tue Oct 25 15:21:51 2016 -0700

    ecore: properly handle promise failure when each member has not been 
fulfilled yet.
---
 src/lib/ecore/efl_promise.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/lib/ecore/efl_promise.c b/src/lib/ecore/efl_promise.c
index 8cbde0e..c5ff17c 100644
--- a/src/lib/ecore/efl_promise.c
+++ b/src/lib/ecore/efl_promise.c
@@ -39,6 +39,7 @@ struct _Efl_Promise_Data
 static void
 _efl_promise_msg_free(Efl_Promise_Msg *msg)
 {
+   if (!msg) return ;
    if (msg->free_cb)
      msg->free_cb(msg->value);
    free(msg);
@@ -737,8 +738,9 @@ _efl_promise_all_free(Efl_Promise_All *all)
 
    EINA_ARRAY_ITER_NEXT(&all->members, i, fa, iterator)
      {
-        EINA_REFCOUNT_UNREF(fa->d)
-          _efl_promise_msg_free(fa->d);
+        if (fa->d)
+          EINA_REFCOUNT_UNREF(fa->d)
+            _efl_promise_msg_free(fa->d);
      }
    efl_del(all->promise);
    all->promise = NULL;

-- 


Reply via email to