summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2016-06-03 17:57:58 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2016-06-03 18:09:35 +0900
commitf3b6d34a0fc0af17643098615a5cfde1b1890ad6 (patch)
tree56fe4d0bc55fe1f3933a8bf7d2d543ae308b6cab
parentc3440ff947a4078b9a34244c8a7aca530dcec84e (diff)
downloadefl-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.c9
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 *