From ce373c9b1ff160ad645b1d396393f8679e782fd2 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Thu, 4 Jan 2018 11:21:36 -0800 Subject: [PATCH] ecore: fallback to use efl_provider_find if the passed object isn't an Efl.Loop_Consumer. --- src/lib/ecore/efl_loop.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore/efl_loop.c b/src/lib/ecore/efl_loop.c index 6ab26bd0fb..56b7efe218 100644 --- a/src/lib/ecore/efl_loop.c +++ b/src/lib/ecore/efl_loop.c @@ -717,6 +717,8 @@ _efl_loop_efl_version_get(Eo *obj EINA_UNUSED, Efl_Loop_Data *pd EINA_UNUSED) EAPI Eina_Future_Scheduler * efl_loop_future_scheduler_get(const Eo *obj) { + Efl_Loop *loop; + if (!obj) return NULL; if (efl_isa(obj, EFL_LOOP_CLASS)) @@ -734,8 +736,14 @@ efl_loop_future_scheduler_get(const Eo *obj) } return &(pd->future_scheduler.eina_future_scheduler); } + if (efl_isa(obj, EFL_LOOP_CONSUMER_CLASS)) + return efl_loop_future_scheduler_get(efl_loop_get(obj)); - return efl_loop_future_scheduler_get(efl_loop_get(obj)); + loop = efl_provider_find(obj, EFL_LOOP_CLASS); + if (loop) + return efl_loop_future_scheduler_get(loop); + + return NULL; } #define EFL_LOOP_EXTRA_OPS \