jackdanielz pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=57a4cae33bf8e6fc5ab75b15d5a001d4026109d9
commit 57a4cae33bf8e6fc5ab75b15d5a001d4026109d9 Author: Daniel Zaoui <[email protected]> Date: Mon Mar 16 17:04:44 2015 +0200 Eolian: add API to return the class from a function. @feature --- src/lib/eolian/Eolian.h | 10 ++++++++++ src/lib/eolian/database_function_api.c | 7 +++++++ src/tests/eolian/eolian_parsing.c | 1 + 3 files changed, 18 insertions(+) diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index e553180..bb13a31 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -1098,6 +1098,16 @@ EAPI Eina_Bool eolian_function_return_is_warn_unused(const Eolian_Function *foo_ EAPI Eina_Bool eolian_function_object_is_const(const Eolian_Function *function_id); /* + * @brief Return the Eolian class associated to the function. + * + * @param[in] function_id id of the function + * @return the class, NULL otherwise + * + * @ingroup Eolian + */ +EAPI const Eolian_Class *eolian_function_class_get(const Eolian_Function *function_id); + +/* * @brief Get full string of an overriding function (implement). * * @param[in] impl the handle of the implement diff --git a/src/lib/eolian/database_function_api.c b/src/lib/eolian/database_function_api.c index 266ae54..69b9668 100644 --- a/src/lib/eolian/database_function_api.c +++ b/src/lib/eolian/database_function_api.c @@ -250,6 +250,13 @@ eolian_function_object_is_const(const Eolian_Function *fid) return fid->obj_is_const; } +EAPI const Eolian_Class * +eolian_function_class_get(const Eolian_Function *fid) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_FALSE); + return fid->klass; +} + EAPI Eina_Bool eolian_function_is_c_only(const Eolian_Function *fid) { diff --git a/src/tests/eolian/eolian_parsing.c b/src/tests/eolian/eolian_parsing.c index f1e30f2..3c623e1 100644 --- a/src/tests/eolian/eolian_parsing.c +++ b/src/tests/eolian/eolian_parsing.c @@ -558,6 +558,7 @@ START_TEST(eolian_simple_parsing) fail_if(strcmp(string, "comment a.set")); string = eolian_function_description_get(fid, EOLIAN_PROP_GET); fail_if(string); + fail_if(eolian_function_class_get(fid) != class); /* Set return */ tp = eolian_function_return_type_get(fid, EOLIAN_PROP_SET); fail_if(!tp); --
