eolian_aux: this must be recursive
authorMarcel Hollerbach <mail@marcel-hollerbach.de>
Wed, 28 Aug 2019 08:20:48 +0000 (10:20 +0200)
committerYeongjong Lee <yj34.lee@samsung.com>
Mon, 16 Sep 2019 01:23:00 +0000 (10:23 +0900)
Summary:
in order to get all callables, this must be recursive, otherwise deeper
callables are forgotten.

Reviewers: q66

Reviewed By: q66

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9421

src/lib/eolian/eolian_aux.c

index a66c02c..66cde8a 100644 (file)
@@ -89,11 +89,17 @@ _callables_find(const Eolian_Class *cl, Eina_List **funcs,
 
    const Eolian_Class *pcl = eolian_class_parent_get(cl);
    if (pcl)
-     total += _callables_find_body(pcl, funcs, events, written);
+     {
+        total += _callables_find_body(pcl, funcs, events, written);
+        total += _callables_find(pcl, funcs, events, written);
+     }
 
    Eina_Iterator *itr = eolian_class_extensions_get(cl);
    EINA_ITERATOR_FOREACH(itr, pcl)
-     total += _callables_find_body(pcl, funcs, events, written);
+     {
+        total += _callables_find_body(pcl, funcs, events, written);
+        total += _callables_find(pcl, funcs, events, written);
+     }
 
    return total;
 }