jackdanielz pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=bddee1554ff12c776fedaeb664d8469eecb12718
commit bddee1554ff12c776fedaeb664d8469eecb12718 Author: Daniel Zaoui <daniel.za...@samsung.com> Date: Wed Apr 2 09:24:30 2014 +0300 Eolian/Generator: don't generate legacy if legacy_prefix is "null". For new classes that don't need legacy, instead of setting legacy null for all the functions, legacy_prefix can be set to "null" to not generate legacy. However, if, for example, only one function among 50 need legacy, you can specify it by setting for this function the legacy token. --- src/bin/eolian/legacy_generator.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/bin/eolian/legacy_generator.c b/src/bin/eolian/legacy_generator.c index 2ac85df..2129307 100644 --- a/src/bin/eolian/legacy_generator.c +++ b/src/bin/eolian/legacy_generator.c @@ -41,6 +41,14 @@ _eapi_decl_func_generate(const char *classname, Eolian_Function funcid, Eolian_F Eina_Bool var_as_ret = EINA_FALSE; Eina_Bool add_star = EINA_FALSE; char tmpstr[0xFF]; + const Eina_List *l; + void *data; + Eina_Strbuf *flags = NULL; + int leg_param_idx = 1; /* Index of the parameter inside the legacy function. It begins from 1 since obj is the first. */ + + Eina_Strbuf *fbody = eina_strbuf_new(); + Eina_Strbuf *fparam = eina_strbuf_new(); + Eina_Strbuf *descparam = eina_strbuf_new(); rettype = eolian_function_return_type_get(funcid, ftype); if (ftype == GET) @@ -67,11 +75,7 @@ _eapi_decl_func_generate(const char *classname, Eolian_Function funcid, Eolian_F } func_lpref = (func_lpref) ? func_lpref : eolian_function_data_get(funcid, EOLIAN_LEGACY); - if (func_lpref && !strcmp(func_lpref, "null")) return; - - Eina_Strbuf *fbody = eina_strbuf_new(); - Eina_Strbuf *fparam = eina_strbuf_new(); - Eina_Strbuf *descparam = eina_strbuf_new(); + if (func_lpref && !strcmp(func_lpref, "null")) goto end; if (func_lpref) { @@ -80,7 +84,9 @@ _eapi_decl_func_generate(const char *classname, Eolian_Function funcid, Eolian_F } else { - func_lpref = (func_lpref) ? func_lpref : eolian_class_legacy_prefix_get(classname); + func_lpref = eolian_class_legacy_prefix_get(classname); + if (func_lpref && !strcmp(func_lpref, "null")) goto end; + if (!func_lpref) func_lpref = classname; sprintf (tmpstr, "%s%s", eolian_function_name_get(funcid), suffix); _template_fill(fbody, tmpl_eapi_funcdef, func_lpref, tmpstr, EINA_FALSE); @@ -104,11 +110,6 @@ _eapi_decl_func_generate(const char *classname, Eolian_Function funcid, Eolian_F eina_strbuf_replace_all(fbody, "@#desc", eina_strbuf_string_get(linedesc)); eina_strbuf_free(linedesc); - const Eina_List *l; - void *data; - Eina_Strbuf *flags = NULL; - int leg_param_idx = 1; /* Index of the parameter inside the legacy function. It begins from 1 since obj is the first. */ - EINA_LIST_FOREACH(eolian_property_keys_list_get(funcid), l, data) { const char *pname; @@ -184,6 +185,7 @@ _eapi_decl_func_generate(const char *classname, Eolian_Function funcid, Eolian_F eina_strbuf_replace_all(fbody, "@#flags", (eolian_function_return_is_warn_unused(funcid, ftype)) ? " EINA_WARN_UNUSED_RESULT" : ""); eina_strbuf_append(buf, eina_strbuf_string_get(fbody)); +end: eina_strbuf_free(flags); eina_strbuf_free(fbody); eina_strbuf_free(fparam); @@ -245,6 +247,7 @@ _eapi_func_generate(const char *classname, Eolian_Function funcid, Eolian_Functi else { func_lpref = eolian_class_legacy_prefix_get(classname); + if (func_lpref && !strcmp(func_lpref, "null")) goto end; if (func_lpref) eina_strbuf_replace_all(fbody, "@#eapi_prefix", func_lpref); else --