yakov pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=9ea38ecc16f213fc17092766acf67ff729df1f2a
commit 9ea38ecc16f213fc17092766acf67ff729df1f2a Author: Yakov Goldberg <[email protected]> Date: Mon Mar 9 18:26:54 2015 +0200 Refactor function names generation Use eolian_function_full_c_name_get() instead of generating it by myself --- src/lib/database.c | 63 +++++++++++------------------------------------------- 1 file changed, 13 insertions(+), 50 deletions(-) diff --git a/src/lib/database.c b/src/lib/database.c index e0b84d4..888f9f4 100644 --- a/src/lib/database.c +++ b/src/lib/database.c @@ -254,54 +254,29 @@ _class_get_func_name_get(Eolian_Class *eolian_class) /* Helper for db_init() */ static char* -_class_func_set_name_get(const Eolian_Class *cl, const Eolian_Function *func) +_class_func_set_name_get(const Eolian_Function *func) { char *ret = NULL; - const char *eo_prefix = NULL; Eina_Strbuf *buf = eina_strbuf_new(); - const char *func_name = eolian_function_name_get(func); - eo_prefix = eolian_class_eo_prefix_get(cl); - - if (eo_prefix) - { - eina_strbuf_append_printf(buf, "%s_", eo_prefix); - eina_strbuf_append_printf(buf, "%s", func_name); - } - else - { - Eina_Iterator *itr = eolian_class_namespaces_get(cl); - const char *token; - EINA_ITERATOR_FOREACH(itr, token) - { - eina_strbuf_append_printf(buf, "%s_", token); - } - eina_iterator_free(itr); - char *last_token = strdup(eolian_class_name_get(cl)); - eina_strbuf_append_printf(buf, "%s", last_token); - - /* Check if class name's suffix overlaps func's name. */ - eina_str_tolower(&last_token); - if (!eina_str_has_prefix(func_name, last_token)) - { - eina_strbuf_append_printf(buf, "_%s", func_name); - } - free(last_token); - } + Eina_Stringshare *_full_c_name = eolian_function_full_c_name_get(func); + eina_strbuf_append_printf(buf, "%s", _full_c_name); Eolian_Function_Type f_type = eolian_function_type_get(func); if ((f_type == EOLIAN_PROPERTY) || (f_type == EOLIAN_PROP_SET)) - eina_strbuf_append_printf(buf, "_set"); + { + eina_strbuf_append_printf(buf, "_set"); + } ret = strdup(eina_strbuf_string_get(buf)); eina_strbuf_free(buf); - eina_str_tolower(&ret); + eina_stringshare_del(_full_c_name); return ret; } /* Helper for db_init() */ static char* -_class_func_get_name_get(const Eolian_Class *cl, const Eolian_Function *func) +_class_func_get_name_get(const Eolian_Function *func) { Eolian_Function_Type f_type = eolian_function_type_get(func); @@ -309,29 +284,17 @@ _class_func_get_name_get(const Eolian_Class *cl, const Eolian_Function *func) return NULL; char *ret = NULL; - const char *eo_prefix = NULL; Eina_Strbuf *buf = eina_strbuf_new(); - - eo_prefix = eolian_class_eo_prefix_get(cl); - - if (eo_prefix) - { - eina_strbuf_append_printf(buf, "%s_", eo_prefix); - } - else - { - eina_strbuf_append_printf(buf, "%s_", eolian_class_full_name_get(cl)); - } - - eina_strbuf_append_printf(buf, "%s", eolian_function_name_get(func)); + Eina_Stringshare *_full_c_name = eolian_function_full_c_name_get(func); + eina_strbuf_append_printf(buf, "%s", _full_c_name); if ((f_type == EOLIAN_PROPERTY) || (f_type == EOLIAN_PROP_GET)) eina_strbuf_append_printf(buf, "_get"); ret = strdup(eina_strbuf_string_get(buf)); eina_strbuf_free(buf); - eina_str_tolower(&ret); + eina_stringshare_del(_full_c_name); return ret; } @@ -1116,7 +1079,7 @@ db_init(const char *db_path, const char *all_eo_path, const char *black_list) if ((f_type == EOLIAN_PROPERTY) || (f_type == EOLIAN_PROP_SET) || (f_type == EOLIAN_METHOD)) { - func_set_name = _class_func_set_name_get(_ekl, func); + func_set_name = _class_func_set_name_get(func); op_desc->func_set_name = strdup(func_set_name); op_desc->func_set = dlsym(RTLD_DEFAULT, op_desc->func_set_name); if (!op_desc->func_set) @@ -1125,7 +1088,7 @@ db_init(const char *db_path, const char *all_eo_path, const char *black_list) } /* if method is not PROPERTY or PROP_GET, NULL will be returned. */ - func_get_name = _class_func_get_name_get(_ekl, func); + func_get_name = _class_func_get_name_get(func); /* Name of get function is not saved, because we don't need to generate it. */ if (func_get_name) { --
