loop: Try harder to find the main loop
authorJean-Philippe Andre <jp.andre@samsung.com>
Mon, 18 Dec 2017 02:58:43 +0000 (11:58 +0900)
committerWonki Kim <wonki_.kim@samsung.com>
Wed, 10 Jan 2018 11:08:13 +0000 (20:08 +0900)
If the object has no parent or anything else goes a bit wrong,
efl_loop_get() may fail to return the loop object. It's a bit ridiculous
when we're in the main loop as we know which loop object was requested.

This avoids returning NULL.

src/lib/ecore/efl_loop_consumer.c

index d436da8..389e0c5 100644 (file)
@@ -14,6 +14,8 @@ struct _Efl_Loop_Consumer_Data
 static Efl_Loop *
 _efl_loop_consumer_loop_get(Eo *obj, Efl_Loop_Consumer_Data *pd EINA_UNUSED)
 {
+   if (eina_main_loop_is())
+     return ecore_main_loop_get();
    return efl_provider_find(obj, EFL_LOOP_CLASS);
 }