summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYakov Goldberg <yakov.g@samsung.com>2013-04-22 09:21:08 +0300
committerYakov Goldberg <yakov.g@samsung.com>2014-04-16 09:21:16 +0300
commit638c39653ec60e8355b927b3bb4012516394d6a5 (patch)
treec75f2570ca0094dc3cfb9a50afbe04cc71f903de
parentf81f1d6172066c7b725250ca777f9986a8863db2 (diff)
downloadefl-devs/yakov/eo_class_mro_get.tar.gz
Signed-off-by: Yakov Goldberg <yakov.g@samsung.com>
-rw-r--r--src/lib/eo/eo.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index 4acf0f6b28..3fc854de0e 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -910,6 +910,20 @@ _eo_class_mro_has(const _Eo_Class *klass, const _Eo_Class *find)
}
#endif
+EAPI Eina_List *
+eo_class_mro_get(const Eo_Class *class_id)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(class_id, NULL);
+ const _Eo_Class *klass = _eo_class_pointer_get(class_id);
+ const _Eo_Class **itr;
+ Eina_List *mro = NULL;
+ for (itr = klass->mro ; *itr ; itr++)
+ {
+ mro = eina_list_append(mro, _eo_class_id_get(*itr));
+ }
+ return mro;
+}
+
static Eina_List *
_eo_class_list_remove_duplicates(Eina_List* list)
{