q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=96eaaaf0746b960c7da7a55fa84602138ef5da64
commit 96eaaaf0746b960c7da7a55fa84602138ef5da64 Author: Daniel Kolesa <[email protected]> Date: Wed Jul 9 16:33:07 2014 +0100 eolian: refactoring step two Move from all instances of Eolian_Class to Eolian_Class*. --- src/bin/eolian/common_funcs.c | 10 +-- src/bin/eolian/common_funcs.h | 6 +- src/bin/eolian/eo_generator.c | 18 ++-- src/bin/eolian/eo_generator.h | 4 +- src/bin/eolian/impl_generator.c | 6 +- src/bin/eolian/impl_generator.h | 2 +- src/bin/eolian/legacy_generator.c | 8 +- src/bin/eolian/legacy_generator.h | 4 +- src/bin/eolian/main.c | 10 +-- src/bin/eolian_cxx/convert.cc | 20 ++--- src/bin/eolian_cxx/convert.hh | 4 +- src/bin/eolian_cxx/convert_comments.cc | 2 +- src/bin/eolian_cxx/convert_comments.hh | 2 +- src/bin/eolian_cxx/eolian_cxx.cc | 10 +-- src/bin/eolian_cxx/eolian_wrappers.hh | 28 +++---- src/lib/eolian/Eolian.h | 42 +++++----- src/lib/eolian/eo_parser.c | 2 +- src/lib/eolian/eolian_database.c | 149 +++++++++++++-------------------- src/lib/eolian/eolian_database.h | 26 +++--- 19 files changed, 162 insertions(+), 191 deletions(-) diff --git a/src/bin/eolian/common_funcs.c b/src/bin/eolian/common_funcs.c index dd2f336..7c90aa7 100644 --- a/src/bin/eolian/common_funcs.c +++ b/src/bin/eolian/common_funcs.c @@ -3,10 +3,10 @@ int _eolian_gen_log_dom = -1; -Eolian_Class current_class; +Eolian_Class *current_class; static void -_class_name_concatenate(const Eolian_Class class, char *buffer) +_class_name_concatenate(const Eolian_Class *class, char *buffer) { const Eina_List *list = eolian_class_namespaces_list_get(class), *itr; const char *name; @@ -20,7 +20,7 @@ _class_name_concatenate(const Eolian_Class class, char *buffer) } void -_class_env_create(const Eolian_Class class, const char *over_classname, _eolian_class_vars *env) +_class_env_create(const Eolian_Class *class, const char *over_classname, _eolian_class_vars *env) { if (!env) return; @@ -68,7 +68,7 @@ _class_env_create(const Eolian_Class class, const char *over_classname, _eolian_ } void -_class_func_env_create(const Eolian_Class class, const char *funcname, Eolian_Function_Type ftype, _eolian_class_func_vars *env) +_class_func_env_create(const Eolian_Class *class, const char *funcname, Eolian_Function_Type ftype, _eolian_class_func_vars *env) { char *p; const char *ret; @@ -121,7 +121,7 @@ end: } void -_template_fill(Eina_Strbuf *buf, const char *templ, const Eolian_Class class, const char *classname, const char *funcname, Eina_Bool reset) +_template_fill(Eina_Strbuf *buf, const char *templ, const Eolian_Class *class, const char *classname, const char *funcname, Eina_Bool reset) { _eolian_class_vars tmp_env; _eolian_class_func_vars tmp_func_env; diff --git a/src/bin/eolian/common_funcs.h b/src/bin/eolian/common_funcs.h index 9bc9417..a92bffd 100644 --- a/src/bin/eolian/common_funcs.h +++ b/src/bin/eolian/common_funcs.h @@ -57,7 +57,7 @@ typedef struct char legacy_func[PATH_MAX]; }_eolian_class_func_vars; -void _template_fill(Eina_Strbuf *buf, const char *templ, const Eolian_Class class, const char *classname, const char *funcname, Eina_Bool reset); +void _template_fill(Eina_Strbuf *buf, const char *templ, const Eolian_Class *class, const char *classname, const char *funcname, Eina_Bool reset); char *_nextline(char *str, unsigned int lines); @@ -65,8 +65,8 @@ char *_startline(char *str, char *pos); char *_source_desc_get(const char *str); -void _class_env_create(const Eolian_Class class, const char *over_classname, _eolian_class_vars *env); +void _class_env_create(const Eolian_Class *class, const char *over_classname, _eolian_class_vars *env); -void _class_func_env_create(const Eolian_Class class, const char *funcname, Eolian_Function_Type ftype EINA_UNUSED, _eolian_class_func_vars *env); +void _class_func_env_create(const Eolian_Class *class, const char *funcname, Eolian_Function_Type ftype EINA_UNUSED, _eolian_class_func_vars *env); #endif diff --git a/src/bin/eolian/eo_generator.c b/src/bin/eolian/eo_generator.c index 9231d08..c84b6f5 100644 --- a/src/bin/eolian/eo_generator.c +++ b/src/bin/eolian/eo_generator.c @@ -79,7 +79,7 @@ tmpl_eo_retdesc[] =" * @return %s\n"; #endif static Eina_Bool -eo_fundef_generate(const Eolian_Class class, Eolian_Function func, Eolian_Function_Type ftype, Eina_Strbuf *functext) +eo_fundef_generate(const Eolian_Class *class, Eolian_Function func, Eolian_Function_Type ftype, Eina_Strbuf *functext) { _eolian_class_func_vars func_env; const char *str_dir[] = {"in", "out", "inout"}; @@ -234,7 +234,7 @@ eo_fundef_generate(const Eolian_Class class, Eolian_Function func, Eolian_Functi } Eina_Bool -eo_header_generate(const Eolian_Class class, Eina_Strbuf *buf) +eo_header_generate(const Eolian_Class *class, Eina_Strbuf *buf) { const Eolian_Function_Type ftype_order[] = {EOLIAN_CTOR, EOLIAN_PROPERTY, EOLIAN_METHOD}; const Eina_List *itr; @@ -326,7 +326,7 @@ eo_header_generate(const Eolian_Class class, Eina_Strbuf *buf) } static Eina_Bool -eo_bind_func_generate(const Eolian_Class class, Eolian_Function funcid, Eolian_Function_Type ftype, Eina_Strbuf *buf, _eolian_class_vars *impl_env) +eo_bind_func_generate(const Eolian_Class *class, Eolian_Function funcid, Eolian_Function_Type ftype, Eina_Strbuf *buf, _eolian_class_vars *impl_env) { _eolian_class_func_vars func_env; const char *suffix = ""; @@ -488,7 +488,7 @@ eo_bind_func_generate(const Eolian_Class class, Eolian_Function funcid, Eolian_F } static Eina_Bool -eo_op_desc_generate(const Eolian_Class class, Eolian_Function fid, Eolian_Function_Type ftype, +eo_op_desc_generate(const Eolian_Class *class, Eolian_Function fid, Eolian_Function_Type ftype, const char *desc, Eina_Strbuf *buf) { _eolian_class_func_vars func_env; @@ -510,7 +510,7 @@ eo_op_desc_generate(const Eolian_Class class, Eolian_Function fid, Eolian_Functi } static Eina_Bool -eo_source_beginning_generate(const Eolian_Class class, Eina_Strbuf *buf) +eo_source_beginning_generate(const Eolian_Class *class, Eina_Strbuf *buf) { const Eina_List *itr; @@ -547,7 +547,7 @@ eo_source_beginning_generate(const Eolian_Class class, Eina_Strbuf *buf) } static Eina_Bool -eo_source_end_generate(const Eolian_Class class, Eina_Strbuf *buf) +eo_source_end_generate(const Eolian_Class *class, Eina_Strbuf *buf) { Eina_Bool ret = EINA_FALSE; const Eina_List *itr; @@ -622,7 +622,7 @@ eo_source_end_generate(const Eolian_Class class, Eina_Strbuf *buf) { _eolian_class_vars impl_env; char implname[0xFF]; - Eolian_Class impl_class = NULL; + Eolian_Class *impl_class = NULL; Eolian_Function_Type ftype; Eolian_Function fnid = NULL; const char *funcname = NULL; @@ -758,7 +758,7 @@ eo_source_end_generate(const Eolian_Class class, Eina_Strbuf *buf) eina_strbuf_reset(tmpbuf); EINA_LIST_FOREACH(eolian_class_inherits_list_get(class), itr, inherit_name) { - Eolian_Class inherit_class = eolian_class_find_by_name(inherit_name); + Eolian_Class *inherit_class = eolian_class_find_by_name(inherit_name); _eolian_class_vars inherit_env; _class_env_create(inherit_class, NULL, &inherit_env); eina_strbuf_append_printf(tmpbuf, "%s_%s, ", inherit_env.upper_classname, @@ -815,7 +815,7 @@ end: } Eina_Bool -eo_source_generate(const Eolian_Class class, Eina_Strbuf *buf) +eo_source_generate(const Eolian_Class *class, Eina_Strbuf *buf) { Eina_Bool ret = EINA_FALSE; const Eina_List *itr; diff --git a/src/bin/eolian/eo_generator.h b/src/bin/eolian/eo_generator.h index 9d115e8..fc47a7b 100644 --- a/src/bin/eolian/eo_generator.h +++ b/src/bin/eolian/eo_generator.h @@ -15,7 +15,7 @@ * */ Eina_Bool -eo_source_generate(const Eolian_Class class, Eina_Strbuf *buf); +eo_source_generate(const Eolian_Class *class, Eina_Strbuf *buf); /* * @brief Generate the header code for a specific Eo class. @@ -28,7 +28,7 @@ eo_source_generate(const Eolian_Class class, Eina_Strbuf *buf); * @return EINA_TRUE on success, EINA_FALSE on error. * */ -Eina_Bool eo_header_generate(const Eolian_Class class, Eina_Strbuf *buf); +Eina_Bool eo_header_generate(const Eolian_Class *class, Eina_Strbuf *buf); #endif diff --git a/src/bin/eolian/impl_generator.c b/src/bin/eolian/impl_generator.c index e583356..d6534b8 100644 --- a/src/bin/eolian/impl_generator.c +++ b/src/bin/eolian/impl_generator.c @@ -125,7 +125,7 @@ _prototype_generate(Eolian_Function foo, Eolian_Function_Type ftype, Eina_Strbuf super_invok = eina_strbuf_new(); if (impl_desc) { - Eolian_Class impl_class; + Eolian_Class *impl_class; eolian_implement_information_get(impl_desc, &impl_class, NULL, NULL); _class_env_create(impl_class, NULL, &impl_env); @@ -194,7 +194,7 @@ end: } Eina_Bool -impl_source_generate(const Eolian_Class class, Eina_Strbuf *buffer) +impl_source_generate(const Eolian_Class *class, Eina_Strbuf *buffer) { Eina_Bool ret = EINA_FALSE; Eina_Strbuf *data_type_buf = eina_strbuf_new(); @@ -267,7 +267,7 @@ impl_source_generate(const Eolian_Class class, Eina_Strbuf *buffer) Eolian_Implement impl_desc; EINA_LIST_FOREACH(eolian_class_implements_list_get(class), itr_funcs, impl_desc) { - Eolian_Class impl_class = NULL; + Eolian_Class *impl_class = NULL; Eolian_Function_Type ftype; foo = NULL; diff --git a/src/bin/eolian/impl_generator.h b/src/bin/eolian/impl_generator.h index 7b98ac9..a4686e2 100644 --- a/src/bin/eolian/impl_generator.h +++ b/src/bin/eolian/impl_generator.h @@ -15,7 +15,7 @@ * */ Eina_Bool -impl_source_generate(const Eolian_Class class, Eina_Strbuf *buf); +impl_source_generate(const Eolian_Class *class, Eina_Strbuf *buf); #endif diff --git a/src/bin/eolian/legacy_generator.c b/src/bin/eolian/legacy_generator.c index a6c2b64..5c7d025 100644 --- a/src/bin/eolian/legacy_generator.c +++ b/src/bin/eolian/legacy_generator.c @@ -42,7 +42,7 @@ EAPI void\n\ "; static void -_eapi_decl_func_generate(Eolian_Class class, Eolian_Function funcid, Eolian_Function_Type ftype, Eina_Strbuf *buf) +_eapi_decl_func_generate(const Eolian_Class *class, Eolian_Function funcid, Eolian_Function_Type ftype, Eina_Strbuf *buf) { _eolian_class_func_vars func_env; const char *funcname = eolian_function_name_get(funcid); @@ -198,7 +198,7 @@ end: } static void -_eapi_func_generate(const Eolian_Class class, Eolian_Function funcid, Eolian_Function_Type ftype, Eina_Strbuf *buf) +_eapi_func_generate(const Eolian_Class *class, Eolian_Function funcid, Eolian_Function_Type ftype, Eina_Strbuf *buf) { _eolian_class_func_vars func_env; char tmpstr[0xFF]; @@ -322,7 +322,7 @@ end: } Eina_Bool -legacy_header_generate(const Eolian_Class class, Eina_Strbuf *buf) +legacy_header_generate(const Eolian_Class *class, Eina_Strbuf *buf) { const Eolian_Function_Type ftype_order[] = {EOLIAN_PROPERTY, EOLIAN_METHOD}; const Eina_List *l; @@ -368,7 +368,7 @@ legacy_header_generate(const Eolian_Class class, Eina_Strbuf *buf) } Eina_Bool -legacy_source_generate(const Eolian_Class class, Eina_Strbuf *buf) +legacy_source_generate(const Eolian_Class *class, Eina_Strbuf *buf) { Eina_Bool ret = EINA_FALSE; const Eina_List *itr; diff --git a/src/bin/eolian/legacy_generator.h b/src/bin/eolian/legacy_generator.h index ddc616e..0a69c96 100644 --- a/src/bin/eolian/legacy_generator.h +++ b/src/bin/eolian/legacy_generator.h @@ -16,7 +16,7 @@ * @return EINA_TRUE on success, EINA_FALSE on error. * */ -Eina_Bool legacy_header_generate(const Eolian_Class class, Eina_Strbuf *buf); +Eina_Bool legacy_header_generate(const Eolian_Class *class, Eina_Strbuf *buf); /* * @brief Generate C source code for Eo class @@ -30,7 +30,7 @@ Eina_Bool legacy_header_generate(const Eolian_Class class, Eina_Strbuf *buf); * @return EINA_TRUE on success, EINA_FALSE on error. * */ -Eina_Bool legacy_source_generate(const Eolian_Class class, Eina_Strbuf *buf); +Eina_Bool legacy_source_generate(const Eolian_Class *class, Eina_Strbuf *buf); #endif diff --git a/src/bin/eolian/main.c b/src/bin/eolian/main.c index 38f892a..7c4738b 100644 --- a/src/bin/eolian/main.c +++ b/src/bin/eolian/main.c @@ -41,7 +41,7 @@ _filename_get(const char *path) } static Eina_Bool -_generate_eo_h_file(char *filename, const Eolian_Class class) +_generate_eo_h_file(char *filename, const Eolian_Class *class) { Eina_Bool ret = EINA_FALSE; Eina_Strbuf *hfile = eina_strbuf_new(); @@ -78,7 +78,7 @@ end: } static Eina_Bool -_generate_c_file(char *filename, const Eolian_Class class, Eina_Bool legacy_support) +_generate_c_file(char *filename, const Eolian_Class *class, Eina_Bool legacy_support) { Eina_Bool ret = EINA_FALSE; @@ -120,7 +120,7 @@ end: } static Eina_Bool -_generate_impl_c_file(char *filename, const Eolian_Class class) +_generate_impl_c_file(char *filename, const Eolian_Class *class) { Eina_Bool ret = EINA_FALSE; long file_size = 0; @@ -187,7 +187,7 @@ end: // TODO join with header gen. static Eina_Bool -_generate_legacy_header_file(char *filename, const Eolian_Class class) +_generate_legacy_header_file(char *filename, const Eolian_Class *class) { Eina_Bool ret = EINA_FALSE; @@ -240,7 +240,7 @@ int main(int argc, char **argv) Eina_Bool help = EINA_FALSE, show = EINA_FALSE; Eina_List *itr; Eina_List *files4gen = NULL; - Eolian_Class class; + Eolian_Class *class; char *output_filename = NULL; /* if NULL, have to generate, otherwise use the name stored there */ eina_init(); diff --git a/src/bin/eolian_cxx/convert.cc b/src/bin/eolian_cxx/convert.cc index e50dd46..1a5917d 100644 --- a/src/bin/eolian_cxx/convert.cc +++ b/src/bin/eolian_cxx/convert.cc @@ -73,7 +73,7 @@ convert_eolian_parameters(Eolian_Function const& func) } static efl::eolian::functions_container_type -convert_eolian_property_to_functions(Eolian_Class const& klass) +convert_eolian_property_to_functions(Eolian_Class const *& klass) { efl::eolian::functions_container_type container; std::string cxx_classname = safe_lower(class_name(klass)); @@ -156,7 +156,7 @@ convert_eolian_property_to_functions(Eolian_Class const& klass) } void -convert_eolian_inheritances(efl::eolian::eo_class& cls, Eolian_Class const& klass) +convert_eolian_inheritances(efl::eolian::eo_class& cls, Eolian_Class const *& klass) { const Eina_List *inheritances = ::eolian_class_inherits_list_get(klass); @@ -190,7 +190,7 @@ convert_eolian_inheritances(efl::eolian::eo_class& cls, Eolian_Class const& klas } void -convert_eolian_implements(efl::eolian::eo_class& cls, Eolian_Class const& klass) +convert_eolian_implements(efl::eolian::eo_class& cls, Eolian_Class const *& klass) { const Eina_List *it; std::string prefix(class_prefix(klass)); @@ -199,7 +199,7 @@ convert_eolian_implements(efl::eolian::eo_class& cls, Eolian_Class const& klass) EINA_LIST_FOREACH(eolian_class_implements_list_get(klass), it, impl_desc_) { Eolian_Implement impl_desc = static_cast<Eolian_Implement>(impl_desc_); - Eolian_Class impl_class; + Eolian_Class *impl_class; Eolian_Function impl_func; Eolian_Function_Type impl_type; eolian_implement_information_get @@ -218,7 +218,7 @@ convert_eolian_implements(efl::eolian::eo_class& cls, Eolian_Class const& klass) } void -convert_eolian_constructors(efl::eolian::eo_class& cls, Eolian_Class const& klass) +convert_eolian_constructors(efl::eolian::eo_class& cls, Eolian_Class const *& klass) { const Eina_List *it; void *curr; @@ -237,7 +237,7 @@ convert_eolian_constructors(efl::eolian::eo_class& cls, Eolian_Class const& klas } void -convert_eolian_functions(efl::eolian::eo_class& cls, Eolian_Class const& klass) +convert_eolian_functions(efl::eolian::eo_class& cls, Eolian_Class const *& klass) { const Eina_List *it; void *curr; @@ -260,7 +260,7 @@ convert_eolian_functions(efl::eolian::eo_class& cls, Eolian_Class const& klass) } void -convert_eolian_properties(efl::eolian::eo_class& cls, Eolian_Class const& klass) +convert_eolian_properties(efl::eolian::eo_class& cls, Eolian_Class const *& klass) { efl::eolian::functions_container_type properties = convert_eolian_property_to_functions(klass); @@ -269,7 +269,7 @@ convert_eolian_properties(efl::eolian::eo_class& cls, Eolian_Class const& klass) } void -convert_eolian_events(efl::eolian::eo_class& cls, Eolian_Class const& klass) +convert_eolian_events(efl::eolian::eo_class& cls, Eolian_Class const *& klass) { efl::eolian::events_container_type events = event_list(klass); cls.events.reserve(cls.events.size() + events.size()); @@ -277,7 +277,7 @@ convert_eolian_events(efl::eolian::eo_class& cls, Eolian_Class const& klass) } efl::eolian::eo_class -convert_eolian_class_new(Eolian_Class const& klass) +convert_eolian_class_new(Eolian_Class const *& klass) { efl::eolian::eo_class cls; cls.type = class_type(klass); @@ -289,7 +289,7 @@ convert_eolian_class_new(Eolian_Class const& klass) } efl::eolian::eo_class -convert_eolian_class(const Eolian_Class klass) +convert_eolian_class(const Eolian_Class *klass) { assert(klass != NULL); efl::eolian::eo_class cls(eolian_cxx::convert_eolian_class_new(klass)); diff --git a/src/bin/eolian_cxx/convert.hh b/src/bin/eolian_cxx/convert.hh index 1f692b4..43d7462 100644 --- a/src/bin/eolian_cxx/convert.hh +++ b/src/bin/eolian_cxx/convert.hh @@ -8,11 +8,11 @@ namespace eolian_cxx { /// -/// @brief Retrieve a efl::eolian::eo_class from an Eolian_Class name. +/// @brief Retrieve a efl::eolian::eo_class from an Eolian_Class* name. /// @param cls The Eolian class. /// @return The @p eo_class describing @p classname. /// -efl::eolian::eo_class convert_eolian_class(Eolian_Class klass); +efl::eolian::eo_class convert_eolian_class(const Eolian_Class *klass); } diff --git a/src/bin/eolian_cxx/convert_comments.cc b/src/bin/eolian_cxx/convert_comments.cc index fae7591..6dd0c2c 100644 --- a/src/bin/eolian_cxx/convert_comments.cc +++ b/src/bin/eolian_cxx/convert_comments.cc @@ -77,7 +77,7 @@ _comment_return(Eolian_Function function, } std::string -convert_comments_class(Eolian_Class const& klass) +convert_comments_class(Eolian_Class const *& klass) { return safe_str(eolian_class_description_get(klass)); } diff --git a/src/bin/eolian_cxx/convert_comments.hh b/src/bin/eolian_cxx/convert_comments.hh index 75d420a..2adad60 100644 --- a/src/bin/eolian_cxx/convert_comments.hh +++ b/src/bin/eolian_cxx/convert_comments.hh @@ -11,7 +11,7 @@ namespace eolian_cxx { -std::string convert_comments_class(Eolian_Class const& kls); +std::string convert_comments_class(Eolian_Class const *& kls); std::string convert_comments_function(Eolian_Function const& function, Eolian_Function_Type func_type); diff --git a/src/bin/eolian_cxx/eolian_cxx.cc b/src/bin/eolian_cxx/eolian_cxx.cc index e10a849..c034ef5 100644 --- a/src/bin/eolian_cxx/eolian_cxx.cc +++ b/src/bin/eolian_cxx/eolian_cxx.cc @@ -88,7 +88,7 @@ opts_check(eolian_cxx::options_type const& opts) } efl::eolian::eo_generator_options -generator_options(const Eolian_Class klass) +generator_options(const Eolian_Class *klass) { efl::eolian::eo_generator_options gen_opts; gen_opts.c_headers.push_back(class_base_file(klass) + ".h"); @@ -97,7 +97,7 @@ generator_options(const Eolian_Class klass) const Eina_List *itr, *inheritances = eolian_class_inherits_list_get(klass); EINA_LIST_FOREACH(inheritances, itr, cur) { - Eolian_Class ext = eolian_class_find_by_name(static_cast<const char*>(cur)); + const Eolian_Class *ext = eolian_class_find_by_name(static_cast<const char*>(cur)); std::string eo_parent_file = class_base_file(ext); if (!eo_parent_file.empty()) { @@ -121,7 +121,7 @@ generator_options(const Eolian_Class klass) } static bool -generate(const Eolian_Class klass, eolian_cxx::options_type const& opts) +generate(const Eolian_Class *klass, eolian_cxx::options_type const& opts) { assert(!!klass); efl::eolian::eo_class cls = eolian_cxx::convert_eolian_class(klass); @@ -157,7 +157,7 @@ generate(const Eolian_Class klass, eolian_cxx::options_type const& opts) static void run(options_type const& opts) { - Eolian_Class klass = NULL; + const Eolian_Class *klass = NULL; if (!opts.classname.empty()) klass = class_from_name(opts.classname); else if (!opts.in_file.empty()) @@ -170,7 +170,7 @@ run(options_type const& opts) else { auto classes = class_list_all(); - for (const Eolian_Class c : classes) + for (const Eolian_Class *c : classes) { if (!generate(c, opts)) { diff --git a/src/bin/eolian_cxx/eolian_wrappers.hh b/src/bin/eolian_cxx/eolian_wrappers.hh index 538f8d8..cb979d0 100644 --- a/src/bin/eolian_cxx/eolian_wrappers.hh +++ b/src/bin/eolian_cxx/eolian_wrappers.hh @@ -27,44 +27,44 @@ method_t const method = {}; struct ctor_t { static constexpr ::Eolian_Function_Type value = ::EOLIAN_CTOR; }; ctor_t const ctor = {}; -inline Eolian_Class +inline Eolian_Class * class_from_file(std::string const& file) { return ::eolian_class_find_by_file(file.c_str()); } inline std::string -class_file(Eolian_Class const& klass) +class_file(Eolian_Class const *& klass) { return safe_str(::eolian_class_file_get(klass)); } inline std::string -class_base_file(Eolian_Class const& klass) +class_base_file(Eolian_Class const *& klass) { return path_base(safe_str(::eolian_class_file_get(klass))); } inline std::string -class_name(Eolian_Class const& klass) +class_name(Eolian_Class const *& klass) { return safe_str(::eolian_class_name_get(klass)); } inline std::string -class_full_name(Eolian_Class const& klass) +class_full_name(Eolian_Class const *& klass) { return safe_str(::eolian_class_full_name_get(klass)); } -inline Eolian_Class +inline Eolian_Class * class_from_name(std::string const& classname) { return ::eolian_class_find_by_name(classname.c_str()); } inline std::string -class_eo_name(Eolian_Class const& klass) +class_eo_name(Eolian_Class const *& klass) { std::string suffix; switch (eolian_class_type_get(klass)) @@ -105,7 +105,7 @@ class_format_cxx(std::string const& fullname) } inline std::string -class_prefix(Eolian_Class const& klass) +class_prefix(Eolian_Class const *& klass) { std::string prefix = safe_lower(::eolian_class_eo_prefix_get(klass)); if (prefix.empty()) @@ -115,7 +115,7 @@ class_prefix(Eolian_Class const& klass) } inline efl::eolian::eo_class::eo_class_type -class_type(Eolian_Class const& klass) +class_type(Eolian_Class const *& klass) { assert(klass != NULL); efl::eolian::eo_class::eo_class_type type; @@ -135,7 +135,7 @@ class_type(Eolian_Class const& klass) } inline std::string -class_namespace_full(Eolian_Class const& klass) +class_namespace_full(Eolian_Class const *& klass) { std::string s; const Eina_List* list = @@ -151,10 +151,10 @@ class_namespace_full(Eolian_Class const& klass) return safe_lower(s); } -inline efl::eina::range_ptr_list<const Eolian_Class> +inline efl::eina::range_ptr_list<const Eolian_Class *> class_list_all() { - return ::eolian_all_classes_list_get(); + return (Eina_List*)::eolian_all_classes_list_get(); } inline std::string @@ -308,7 +308,7 @@ parameter_type(Eolian_Function_Parameter const& parameter, setter_t func_type) } inline efl::eolian::eo_event -event_create(Eolian_Class const& klass, const Eolian_Event event_) +event_create(Eolian_Class const *& klass, const Eolian_Event event_) { efl::eolian::eo_event event; const char *name, *type, *comment; @@ -325,7 +325,7 @@ event_create(Eolian_Class const& klass, const Eolian_Event event_) } inline efl::eolian::events_container_type -event_list(Eolian_Class const& klass) +event_list(Eolian_Class const *& klass) { efl::eolian::events_container_type events; const Eina_List* list = eolian_class_events_list_get(klass); diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index c86ebc2..17c5ed8 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -42,7 +42,7 @@ extern "C" { * * @ingroup Eolian */ -typedef struct _Eolian_Class* Eolian_Class; +typedef struct _Eolian_Class Eolian_Class; /* Function Id used to extract information on class functions * @@ -224,7 +224,7 @@ EAPI Eina_Bool eolian_all_eot_files_parse(); * * @ingroup Eolian */ -EAPI Eina_Bool eolian_show(const Eolian_Class klass); +EAPI Eina_Bool eolian_show(const Eolian_Class *klass); /* * @brief Finds a class by its name @@ -234,7 +234,7 @@ EAPI Eina_Bool eolian_show(const Eolian_Class klass); * * @ingroup Eolian */ -EAPI Eolian_Class +EAPI Eolian_Class * eolian_class_find_by_name(const char *class_name); /* @@ -245,7 +245,7 @@ eolian_class_find_by_name(const char *class_name); * * @ingroup Eolian */ -EAPI Eolian_Class +EAPI Eolian_Class * eolian_class_find_by_file(const char *file_name); /* @@ -257,7 +257,7 @@ eolian_class_find_by_file(const char *file_name); * @ingroup Eolian */ EAPI const char * -eolian_class_file_get(const Eolian_Class klass); +eolian_class_file_get(const Eolian_Class *klass); /* * @brief Returns the full name of the given class. @@ -271,7 +271,7 @@ eolian_class_file_get(const Eolian_Class klass); * @ingroup Eolian */ EAPI const char * -eolian_class_full_name_get(const Eolian_Class klass); +eolian_class_full_name_get(const Eolian_Class *klass); /* * @brief Returns the name of the given class. @@ -282,7 +282,7 @@ eolian_class_full_name_get(const Eolian_Class klass); * @ingroup Eolian */ EAPI const char * -eolian_class_name_get(const Eolian_Class klass); +eolian_class_name_get(const Eolian_Class *klass); /* * @brief Returns the namespaces list of the given class. @@ -293,7 +293,7 @@ eolian_class_name_get(const Eolian_Class klass); * @ingroup Eolian */ EAPI const Eina_List * -eolian_class_namespaces_list_get(const Eolian_Class klass); +eolian_class_namespaces_list_get(const Eolian_Class *klass); /* * @brief Returns the class type of the given class @@ -303,7 +303,7 @@ eolian_class_namespaces_list_get(const Eolian_Class klass); * * @ingroup Eolian */ -EAPI Eolian_Class_Type eolian_class_type_get(const Eolian_Class klass); +EAPI Eolian_Class_Type eolian_class_type_get(const Eolian_Class *klass); /* * @brief Returns a list of all the classes stored into the database. @@ -322,7 +322,7 @@ EAPI const Eina_List *eolian_all_classes_list_get(void); * * @ingroup Eolian */ -EAPI const char *eolian_class_description_get(const Eolian_Class klass); +EAPI const char *eolian_class_description_get(const Eolian_Class *klass); /* * @brief Returns the legacy prefix of a class @@ -332,7 +332,7 @@ EAPI const char *eolian_class_description_get(const Eolian_Class klass); * * @ingroup Eolian */ -EAPI const char *eolian_class_legacy_prefix_get(const Eolian_Class klass); +EAPI const char *eolian_class_legacy_prefix_get(const Eolian_Class *klass); /* * @brief Returns the eo prefix of a class @@ -342,7 +342,7 @@ EAPI const char *eolian_class_legacy_prefix_get(const Eolian_Class klass); * * @ingroup Eolian */ -EAPI const char* eolian_class_eo_prefix_get(const Eolian_Class klass); +EAPI const char* eolian_class_eo_prefix_get(const Eolian_Class *klass); /* * @brief Returns the data type of a class @@ -353,7 +353,7 @@ EAPI const char* eolian_class_eo_prefix_get(const Eolian_Class klass); * @ingroup Eolian */ EAPI const char* -eolian_class_data_type_get(const Eolian_Class klass); +eolian_class_data_type_get(const Eolian_Class *klass); /* * @brief Returns the names list of the inherit classes of a class @@ -363,7 +363,7 @@ eolian_class_data_type_get(const Eolian_Class klass); * * @ingroup Eolian */ -EAPI const Eina_List *eolian_class_inherits_list_get(const Eolian_Class klass); +EAPI const Eina_List *eolian_class_inherits_list_get(const Eolian_Class *klass); /* * @brief Returns a list of functions of a class. @@ -374,7 +374,7 @@ EAPI const Eina_List *eolian_class_inherits_list_get(const Eolian_Class klass); * * @ingroup Eolian */ -EAPI const Eina_List *eolian_class_functions_list_get(const Eolian_Class klass, Eolian_Function_Type func_type); +EAPI const Eina_List *eolian_class_functions_list_get(const Eolian_Class *klass, Eolian_Function_Type func_type); /* * @brief Returns the type of a function @@ -429,7 +429,7 @@ EAPI const char *eolian_function_full_c_name_get(Eolian_Function function_id, co * * @ingroup Eolian */ -EAPI Eolian_Function eolian_class_function_find_by_name(const Eolian_Class klass, const char *func_name, Eolian_Function_Type f_type); +EAPI Eolian_Function eolian_class_function_find_by_name(const Eolian_Class *klass, const char *func_name, Eolian_Function_Type f_type); /* * @brief Returns a specific data for a function. @@ -652,7 +652,7 @@ EAPI Eina_Stringshare * eolian_implement_full_name_get(const Eolian_Implement im * @ingroup Eolian */ EAPI Eina_Bool eolian_implement_information_get(const Eolian_Implement impl, - Eolian_Class *klass, Eolian_Function *function, Eolian_Function_Type *type); + Eolian_Class **klass, Eolian_Function *function, Eolian_Function_Type *type); /* * @brief Get the list of overriding functions defined in a class. @@ -662,7 +662,7 @@ EAPI Eina_Bool eolian_implement_information_get(const Eolian_Implement impl, * * @ingroup Eolian */ -EAPI const Eina_List *eolian_class_implements_list_get(const Eolian_Class klass); +EAPI const Eina_List *eolian_class_implements_list_get(const Eolian_Class *klass); /* * @brief Get the list of events defined in a class. @@ -672,7 +672,7 @@ EAPI const Eina_List *eolian_class_implements_list_get(const Eolian_Class klass) * * @ingroup Eolian */ -EAPI const Eina_List *eolian_class_events_list_get(const Eolian_Class klass); +EAPI const Eina_List *eolian_class_events_list_get(const Eolian_Class *klass); /* * @brief Get information about an event. @@ -695,7 +695,7 @@ EAPI Eina_Bool eolian_class_event_information_get(Eolian_Event event, const char * * @ingroup Eolian */ -EAPI Eina_Bool eolian_class_ctor_enable_get(const Eolian_Class klass); +EAPI Eina_Bool eolian_class_ctor_enable_get(const Eolian_Class *klass); /* * @brief Indicates if the class destructor has to invoke @@ -706,7 +706,7 @@ EAPI Eina_Bool eolian_class_ctor_enable_get(const Eolian_Class klass); * * @ingroup Eolian */ -EAPI Eina_Bool eolian_class_dtor_enable_get(const Eolian_Class klass); +EAPI Eina_Bool eolian_class_dtor_enable_get(const Eolian_Class *klass); /* * @brief Find the type for a certain alias diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c index fb65344..3e9ed9a 100644 --- a/src/lib/eolian/eo_parser.c +++ b/src/lib/eolian/eo_parser.c @@ -1204,7 +1204,7 @@ _db_fill_class(Eo_Class_Def *kls, const char *filename) Eo_Event_Def *event; Eo_Implement_Def *impl; - Eolian_Class class = database_class_add(kls->name, kls->type); + Eolian_Class *class = database_class_add(kls->name, kls->type); Eina_Bool is_iface = (kls->type == EOLIAN_CLASS_INTERFACE); database_class_file_set(class, filename); diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index 905fdc7..7fcb6d3 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -21,7 +21,7 @@ static Eina_Hash *_filenames = NULL; /* Hash: filename without extension -> full static Eina_Hash *_tfilenames = NULL; static int _database_init_count = 0; -typedef struct +typedef struct _Eolian_Class { Eina_Stringshare *full_name; Eina_List *namespaces; /* List Eina_Stringshare * */ @@ -40,7 +40,7 @@ typedef struct Eina_List *events; /* List event_name -> _Eolian_Event */ Eina_Bool class_ctor_enable:1; Eina_Bool class_dtor_enable:1; -} _Eolian_Class; +} Eolian_Class; typedef struct { @@ -150,7 +150,7 @@ _fid_del(_Eolian_Function *fid) } static void -_class_del(_Eolian_Class *class) +_class_del(Eolian_Class *class) { Eina_Stringshare *inherit_name; Eina_List *inherits = class->inherits; @@ -214,9 +214,9 @@ database_shutdown() if (_database_init_count == 0) { - Eolian_Class class; + Eolian_Class *class; EINA_LIST_FREE(_classes, class) - _class_del((_Eolian_Class *)class); + _class_del(class); eina_hash_free(_types); eina_hash_free(_structs); eina_hash_free(_filenames); @@ -271,13 +271,13 @@ eolian_type_struct_find_by_name(const char *name) return tp; } -Eolian_Class +Eolian_Class * database_class_add(const char *class_name, Eolian_Class_Type type) { char *full_name = strdup(class_name); char *name = full_name; char *colon = full_name; - _Eolian_Class *cl = calloc(1, sizeof(*cl)); + Eolian_Class *cl = calloc(1, sizeof(*cl)); cl->full_name = eina_stringshare_add(class_name); cl->type = type; do @@ -295,58 +295,53 @@ database_class_add(const char *class_name, Eolian_Class_Type type) cl->name = eina_stringshare_add(name); _classes = eina_list_append(_classes, cl); free(full_name); - return (Eolian_Class)cl; + return cl; } Eina_Bool -database_class_file_set(Eolian_Class class, const char *file_name) +database_class_file_set(Eolian_Class *class, const char *file_name) { - _Eolian_Class *cl = (_Eolian_Class *)class; - EINA_SAFETY_ON_NULL_RETURN_VAL(cl, EINA_FALSE); - cl->file = eina_stringshare_add(file_name); + EINA_SAFETY_ON_NULL_RETURN_VAL(class, EINA_FALSE); + class->file = eina_stringshare_add(file_name); return EINA_TRUE; } EAPI const char * -eolian_class_file_get(const Eolian_Class class) +eolian_class_file_get(const Eolian_Class *cl) { - _Eolian_Class *cl = (_Eolian_Class *)class; return cl ? cl->file : NULL; } EAPI const char * -eolian_class_full_name_get(const Eolian_Class class) +eolian_class_full_name_get(const Eolian_Class *cl) { - _Eolian_Class *cl = (_Eolian_Class *)class; return cl ? cl->full_name : NULL; } EAPI const char * -eolian_class_name_get(const Eolian_Class class) +eolian_class_name_get(const Eolian_Class *cl) { - _Eolian_Class *cl = (_Eolian_Class *)class; return cl ? cl->name : NULL; } EAPI const Eina_List * -eolian_class_namespaces_list_get(const Eolian_Class class) +eolian_class_namespaces_list_get(const Eolian_Class *cl) { - _Eolian_Class *cl = (_Eolian_Class *)class; return cl ? cl->namespaces : NULL; } -EAPI Eolian_Class +EAPI Eolian_Class * eolian_class_find_by_name(const char *class_name) { Eina_List *itr; - _Eolian_Class *cl; + Eolian_Class *cl; Eina_Stringshare *shr_name = eina_stringshare_add(class_name); EINA_LIST_FOREACH(_classes, itr, cl) if (cl->full_name == shr_name) goto end; cl = NULL; end: eina_stringshare_del(shr_name); - return (Eolian_Class)cl; + return cl; } /* @@ -354,12 +349,12 @@ end: * ret true && class -> only one class corresponding * ret true && !class -> no class corresponding */ -Eina_Bool database_class_name_validate(const char *class_name, Eolian_Class *class) +Eina_Bool database_class_name_validate(const char *class_name, Eolian_Class **class) { char *name = strdup(class_name); char *colon = name + 1; - Eolian_Class found_class = NULL; - Eolian_Class candidate; + Eolian_Class *found_class = NULL; + Eolian_Class *candidate; if (class) *class = NULL; do { @@ -371,8 +366,8 @@ Eina_Bool database_class_name_validate(const char *class_name, Eolian_Class *cla if (found_class) { ERR("Name clash between class %s and class %s", - ((_Eolian_Class *)candidate)->full_name, - ((_Eolian_Class *)found_class)->full_name); + candidate->full_name, + found_class->full_name); free(name); return EINA_FALSE; // Names clash } @@ -386,34 +381,32 @@ Eina_Bool database_class_name_validate(const char *class_name, Eolian_Class *cla return EINA_TRUE; } -EAPI Eolian_Class +EAPI Eolian_Class * eolian_class_find_by_file(const char *file_name) { Eina_List *itr; - _Eolian_Class *cl; + Eolian_Class *cl; Eina_Stringshare *shr_file = eina_stringshare_add(file_name); EINA_LIST_FOREACH(_classes, itr, cl) if (cl->file == shr_file) goto end; cl = NULL; end: eina_stringshare_del(shr_file); - return (Eolian_Class)cl; + return cl; } EAPI Eolian_Class_Type -eolian_class_type_get(const Eolian_Class class) +eolian_class_type_get(const Eolian_Class *cl) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN_VAL(cl, EOLIAN_CLASS_UNKNOWN_TYPE); return cl->type; } Eina_Bool -database_class_del(Eolian_Class class) +database_class_del(Eolian_Class *cl) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN_VAL(cl, EINA_FALSE); - _classes = eina_list_remove(_classes, class); + _classes = eina_list_remove(_classes, cl); _class_del(cl); return EINA_TRUE; } @@ -425,91 +418,80 @@ eolian_all_classes_list_get(void) } Eina_Bool -database_class_inherit_add(Eolian_Class class, const char *inherit_class_name) +database_class_inherit_add(Eolian_Class *cl, const char *inherit_class_name) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN_VAL(cl, EINA_FALSE); cl->inherits = eina_list_append(cl->inherits, eina_stringshare_add(inherit_class_name)); return EINA_TRUE; } EAPI const char * -eolian_class_description_get(const Eolian_Class class) +eolian_class_description_get(const Eolian_Class *cl) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN_VAL(cl, NULL); return cl->description; } void -database_class_description_set(Eolian_Class class, const char *description) +database_class_description_set(Eolian_Class *cl, const char *description) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN(cl); cl->description = eina_stringshare_add(description); } EAPI const char* -eolian_class_legacy_prefix_get(const Eolian_Class class) +eolian_class_legacy_prefix_get(const Eolian_Class *cl) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN_VAL(cl, NULL); return cl->legacy_prefix; } void -database_class_legacy_prefix_set(Eolian_Class class, const char *legacy_prefix) +database_class_legacy_prefix_set(Eolian_Class *cl, const char *legacy_prefix) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN(cl); cl->legacy_prefix = eina_stringshare_add(legacy_prefix); } EAPI const char* -eolian_class_eo_prefix_get(const Eolian_Class class) +eolian_class_eo_prefix_get(const Eolian_Class *cl) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN_VAL(cl, NULL); return cl->eo_prefix; } void -database_class_eo_prefix_set(Eolian_Class class, const char *eo_prefix) +database_class_eo_prefix_set(Eolian_Class *cl, const char *eo_prefix) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN(cl); cl->eo_prefix = eina_stringshare_add(eo_prefix); } EAPI const char* -eolian_class_data_type_get(const Eolian_Class class) +eolian_class_data_type_get(const Eolian_Class *cl) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN_VAL(cl, NULL); return cl->data_type; } void -database_class_data_type_set(Eolian_Class class, const char *data_type) +database_class_data_type_set(Eolian_Class *cl, const char *data_type) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN(cl); - cl->data_type= eina_stringshare_add(data_type); + cl->data_type = eina_stringshare_add(data_type); } EAPI const Eina_List * -eolian_class_inherits_list_get(const Eolian_Class class) +eolian_class_inherits_list_get(const Eolian_Class *cl) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN_VAL(cl, NULL); //FIXME: create list here return cl->inherits; } EAPI const Eina_List* -eolian_class_implements_list_get(const Eolian_Class class) +eolian_class_implements_list_get(const Eolian_Class *cl) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN_VAL(cl, NULL); return cl->implements; } @@ -559,9 +541,8 @@ database_function_type_set(Eolian_Function function_id, Eolian_Function_Type foo fid->type = foo_type; } -Eina_Bool database_class_function_add(Eolian_Class class, Eolian_Function foo_id) +Eina_Bool database_class_function_add(Eolian_Class *cl, Eolian_Function foo_id) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN_VAL(cl, EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL(foo_id && cl, EINA_FALSE); _Eolian_Function *fid = (_Eolian_Function *) foo_id; @@ -595,10 +576,9 @@ database_implement_new(const char *impl_name) } Eina_Bool -database_class_implement_add(Eolian_Class class, Eolian_Implement impl_desc) +database_class_implement_add(Eolian_Class *cl, Eolian_Implement impl_desc) { EINA_SAFETY_ON_NULL_RETURN_VAL(impl_desc, EINA_FALSE); - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN_VAL(cl, EINA_FALSE); cl->implements = eina_list_append(cl->implements, impl_desc); return EINA_TRUE; @@ -613,13 +593,13 @@ eolian_implement_full_name_get(const Eolian_Implement impl) } EAPI Eina_Bool -eolian_implement_information_get(const Eolian_Implement impl, Eolian_Class *class_out, Eolian_Function *func_out, Eolian_Function_Type *type_out) +eolian_implement_information_get(const Eolian_Implement impl, Eolian_Class **class_out, Eolian_Function *func_out, Eolian_Function_Type *type_out) { _Eolian_Implement *_impl = (_Eolian_Implement *)impl; EINA_SAFETY_ON_NULL_RETURN_VAL(_impl, EINA_FALSE); - Eolian_Class class; + Eolian_Class *class; if (!database_class_name_validate(_impl->full_name, &class) || !class) return EINA_FALSE; - const char *class_name = ((_Eolian_Class *)class)->full_name; + const char *class_name = class->full_name; if (class_out) *class_out = class; char *func_name = strdup(_impl->full_name + strlen(class_name) + 1); @@ -641,11 +621,10 @@ eolian_implement_information_get(const Eolian_Implement impl, Eolian_Class *clas } EAPI Eolian_Function -eolian_class_function_find_by_name(const Eolian_Class class, const char *func_name, Eolian_Function_Type f_type) +eolian_class_function_find_by_name(const Eolian_Class *cl, const char *func_name, Eolian_Function_Type f_type) { Eina_List *itr; Eolian_Function foo_id; - _Eolian_Class *cl = (_Eolian_Class *)class; if (!cl) return NULL; if (f_type == EOLIAN_UNRESOLVED || f_type == EOLIAN_METHOD) @@ -682,9 +661,8 @@ eolian_class_function_find_by_name(const Eolian_Class class, const char *func_na } EAPI const Eina_List * -eolian_class_functions_list_get(const Eolian_Class class, Eolian_Function_Type foo_type) +eolian_class_functions_list_get(const Eolian_Class *cl, Eolian_Function_Type foo_type) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN_VAL(cl, NULL); switch (foo_type) { @@ -1093,18 +1071,16 @@ database_event_free(Eolian_Event event) } Eina_Bool -database_class_event_add(Eolian_Class class, Eolian_Event event_desc) +database_class_event_add(Eolian_Class *cl, Eolian_Event event_desc) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_FALSE_RETURN_VAL(event_desc && cl, EINA_FALSE); cl->events = eina_list_append(cl->events, event_desc); return EINA_TRUE; } EAPI const Eina_List* -eolian_class_events_list_get(const Eolian_Class class) +eolian_class_events_list_get(const Eolian_Class *cl) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN_VAL(cl, NULL); return cl->events; } @@ -1121,35 +1097,31 @@ eolian_class_event_information_get(Eolian_Event event, const char **event_name, } Eina_Bool -database_class_ctor_enable_set(Eolian_Class class, Eina_Bool enable) +database_class_ctor_enable_set(Eolian_Class *cl, Eina_Bool enable) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN_VAL(cl, EINA_FALSE); cl->class_ctor_enable = enable; return EINA_TRUE; } Eina_Bool -database_class_dtor_enable_set(Eolian_Class class, Eina_Bool enable) +database_class_dtor_enable_set(Eolian_Class *cl, Eina_Bool enable) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN_VAL(cl, EINA_FALSE); cl->class_dtor_enable = enable; return EINA_TRUE; } EAPI Eina_Bool -eolian_class_ctor_enable_get(const Eolian_Class class) +eolian_class_ctor_enable_get(const Eolian_Class *cl) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN_VAL(cl, EINA_FALSE); return cl->class_ctor_enable; } EAPI Eina_Bool -eolian_class_dtor_enable_get(const Eolian_Class class) +eolian_class_dtor_enable_get(const Eolian_Class *cl) { - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN_VAL(cl, EINA_FALSE); return cl->class_dtor_enable; } @@ -1454,7 +1426,7 @@ database_type_print(Eolian_Type type) static void _implements_print(Eolian_Implement impl, int nb_spaces) { - Eolian_Class class; + Eolian_Class *class; Eolian_Function func; const char *t; Eolian_Function_Type ft; @@ -1582,13 +1554,12 @@ static Eina_Bool _function_print(const _Eolian_Function *fid, int nb_spaces) } static Eina_Bool -_class_print(const Eolian_Class class) +_class_print(const Eolian_Class *cl) { Eina_List *itr; _Eolian_Function *function; const char *types[5] = {"", "Regular", "Regular Non Instantiable", "Mixin", "Interface"}; - _Eolian_Class *cl = (_Eolian_Class *)class; EINA_SAFETY_ON_NULL_RETURN_VAL(cl, EINA_FALSE); printf("Class %s:\n", cl->name); if (cl->description) @@ -1666,12 +1637,12 @@ _class_print(const Eolian_Class class) } EAPI Eina_Bool -eolian_show(const Eolian_Class class) +eolian_show(const Eolian_Class *class) { if (!class) { Eina_List *itr; - Eolian_Class cl; + Eolian_Class *cl; EINA_LIST_FOREACH(_classes, itr, cl) _class_print(cl); } @@ -1757,7 +1728,7 @@ EAPI Eina_Bool eolian_eo_file_parse(const char *filepath) { const Eina_List *itr; - Eolian_Class class = eolian_class_find_by_file(filepath); + Eolian_Class *class = eolian_class_find_by_file(filepath); const char *inherit_name; Eolian_Implement impl; if (!class) @@ -1792,7 +1763,7 @@ eolian_eo_file_parse(const char *filepath) } EINA_LIST_FOREACH(eolian_class_implements_list_get(class), itr, impl) { - Eolian_Class impl_class; + Eolian_Class *impl_class; Eolian_Function impl_func; Eolian_Function_Type impl_type = EOLIAN_UNRESOLVED; eolian_implement_information_get(impl, &impl_class, &impl_func, &impl_type); diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h index 38f57e2..f54a567 100644 --- a/src/lib/eolian/eolian_database.h +++ b/src/lib/eolian/eolian_database.h @@ -41,34 +41,34 @@ Eina_Bool database_type_add(const char *alias, Eolian_Type type); Eina_Bool database_struct_add(Eolian_Type type); /* Add a class in the database */ -Eolian_Class database_class_add(const char *class_name, Eolian_Class_Type type); +Eolian_Class *database_class_add(const char *class_name, Eolian_Class_Type type); /* Add a class from the database */ Eina_Bool -database_class_del(Eolian_Class class); +database_class_del(Eolian_Class *class); /* Add an inherit class name to a class */ -Eina_Bool database_class_inherit_add(Eolian_Class class, const char *inherit_class_name); +Eina_Bool database_class_inherit_add(Eolian_Class *class, const char *inherit_class_name); /* Set description of class. */ void -database_class_description_set(Eolian_Class class, const char *description); +database_class_description_set(Eolian_Class *class, const char *description); /* Set legacy of class. */ void -database_class_legacy_prefix_set(Eolian_Class class, const char *legacy_prefix); +database_class_legacy_prefix_set(Eolian_Class *class, const char *legacy_prefix); /* Set eo prefix of class. */ void -database_class_eo_prefix_set(Eolian_Class class, const char *eo_prefix); +database_class_eo_prefix_set(Eolian_Class *class, const char *eo_prefix); /* Set data of class. */ void -database_class_data_type_set(Eolian_Class class, const char *data_type); +database_class_data_type_set(Eolian_Class *class, const char *data_type); /* Set file of class */ Eina_Bool -database_class_file_set(Eolian_Class class, const char *file_name); +database_class_file_set(Eolian_Class *class, const char *file_name); /* Create a function */ Eolian_Function database_function_new(const char *function_name, Eolian_Function_Type foo_type); @@ -77,7 +77,7 @@ Eolian_Function database_function_new(const char *function_name, Eolian_Function void database_function_type_set(Eolian_Function function_id, Eolian_Function_Type foo_type); /* Add a function to a class */ -Eina_Bool database_class_function_add(Eolian_Class class, Eolian_Function foo_id); +Eina_Bool database_class_function_add(Eolian_Class *class, Eolian_Function foo_id); void database_function_data_set(Eolian_Function function_id, const char *key, const char *description); @@ -122,13 +122,13 @@ Eolian_Implement database_implement_new(const char *impl_name); Eina_Bool -database_class_implement_add(Eolian_Class class, Eolian_Implement impl_id); +database_class_implement_add(Eolian_Class *class, Eolian_Implement impl_id); Eina_Bool -database_class_ctor_enable_set(Eolian_Class class, Eina_Bool enable); +database_class_ctor_enable_set(Eolian_Class *class, Eina_Bool enable); Eina_Bool -database_class_dtor_enable_set(Eolian_Class class, Eina_Bool enable); +database_class_dtor_enable_set(Eolian_Class *class, Eina_Bool enable); Eolian_Event database_event_new(const char *event_name, const char *event_type, const char *event_desc); @@ -137,7 +137,7 @@ void database_event_free(Eolian_Event event); Eina_Bool -database_class_event_add(Eolian_Class class, Eolian_Event event_desc); +database_class_event_add(Eolian_Class *class, Eolian_Event event_desc); void database_type_print(Eolian_Type type); --
