cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=ce373c9b1ff160ad645b1d396393f8679e782fd2

commit ce373c9b1ff160ad645b1d396393f8679e782fd2
Author: Cedric BAIL <ced...@osg.samsung.com>
Date:   Thu Jan 4 11:21:36 2018 -0800

    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));
+
+   loop = efl_provider_find(obj, EFL_LOOP_CLASS);
+   if (loop)
+     return efl_loop_future_scheduler_get(loop);
 
-   return efl_loop_future_scheduler_get(efl_loop_get(obj));
+   return NULL;
 }
 
 #define EFL_LOOP_EXTRA_OPS \

-- 


Reply via email to