diff options
author | Cedric BAIL <cedric@osg.samsung.com> | 2016-06-03 16:54:38 -0700 |
---|---|---|
committer | Cedric BAIL <cedric@osg.samsung.com> | 2016-06-03 17:00:12 -0700 |
commit | af2b0c8629d6cdfd70f6b21b6d06434717bd3373 (patch) | |
tree | eee24a67b9eff7f63aa2ae088f919591d0a2fb46 | |
parent | 2b12aea5e63139ddabab9c1e93d3b052a2100b4c (diff) | |
download | efl-af2b0c8629d6cdfd70f6b21b6d06434717bd3373.tar.gz |
eina: protect promise death during callbacks cancel.
-rw-r--r-- | src/lib/eina/eina_promise.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lib/eina/eina_promise.c b/src/lib/eina/eina_promise.c index 7eac26ef4a..8a207f7b51 100644 --- a/src/lib/eina/eina_promise.c +++ b/src/lib/eina/eina_promise.c @@ -193,6 +193,7 @@ _eina_promise_cancel_calls(_Eina_Promise_Default_Owner* promise, Eina_Bool call_ { _Eina_Promise_Cancel_Cb* callback; + _eina_promise_ref(&promise->promise); EINA_INLIST_FREE(promise->promise.cancel_callbacks, callback) { promise->promise.cancel_callbacks = eina_inlist_remove(promise->promise.cancel_callbacks, EINA_INLIST_GET(callback)); @@ -207,6 +208,7 @@ _eina_promise_cancel_calls(_Eina_Promise_Default_Owner* promise, Eina_Bool call_ { _eina_promise_then_calls(promise); } + _eina_promise_unref(&promise->promise); } static void |