From: Cedric BAIL Date: Mon, 12 Mar 2018 16:43:44 +0000 (-0700) Subject: eina: fix promise scheduler lookup to find it when given a resolved chain of future. X-Git-Tag: upstream/1.21.0~1673 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5dcf1a0adcfe72fb8a5bc33622c6bcef4f8091ee;p=platform%2Fupstream%2Fefl.git eina: fix promise scheduler lookup to find it when given a resolved chain of future. T6738 --- diff --git a/src/lib/eina/eina_promise.c b/src/lib/eina/eina_promise.c index 93e091b..5dac1c8 100644 --- a/src/lib/eina/eina_promise.c +++ b/src/lib/eina/eina_promise.c @@ -663,9 +663,15 @@ _dummy_cancel(void *data EINA_UNUSED, const Eina_Promise *dead_ptr EINA_UNUSED) static Eina_Future_Scheduler * _scheduler_get(Eina_Future *f) { - for (; f->prev != NULL; f = f->prev); - assert(f->promise != NULL); - return f->promise->scheduler; + do + { + if (f->promise) return f->promise->scheduler; + else if (f->scheduled_entry) return f->scheduled_entry->scheduler; + f = f->prev; + } + while (f); + assert(EINA_FALSE && "no scheduler for future!"); + return NULL; } EAPI Eina_Value