diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2016-06-03 17:57:58 +0900 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2016-06-03 18:09:35 +0900 |
commit | f3b6d34a0fc0af17643098615a5cfde1b1890ad6 (patch) | |
tree | 56fe4d0bc55fe1f3933a8bf7d2d543ae308b6cab | |
parent | c3440ff947a4078b9a34244c8a7aca530dcec84e (diff) | |
download | efl-f3b6d34a0fc0af17643098615a5cfde1b1890ad6.tar.gz |
ecore timeouts - dont crash on cancel
this fixes a nasty double deletion on cancel of timeouts. at least for
now as long as we have promises.
-rw-r--r-- | src/lib/ecore/ecore_main.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/lib/ecore/ecore_main.c b/src/lib/ecore/ecore_main.c index e17a5ddae8..a361289654 100644 --- a/src/lib/ecore/ecore_main.c +++ b/src/lib/ecore/ecore_main.c @@ -2874,10 +2874,11 @@ _efl_loop_job_cancel(void* data, Eina_Promise_Owner* promise EINA_UNUSED) Efl_Internal_Promise *j = data; if (j->job_is) - ecore_job_del(j->u.job); - else - eo_del(j->u.timer); - _efl_loop_internal_cancel(j); + { + ecore_job_del(j->u.job); + _efl_loop_internal_cancel(j); + } + else eo_del(j->u.timer); } static Efl_Internal_Promise * |