yakov pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=481b02716c9dc2eb81e6a0ad0fc58314f916cd0c
commit 481b02716c9dc2eb81e6a0ad0fc58314f916cd0c Author: Yakov Goldberg <yako...@samsung.com> Date: Mon May 25 07:41:21 2015 +0300 Adapt to Eolian API changes Change usage of eolian_properties_* APIs --- src/lib/database.c | 60 ++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 18 deletions(-) diff --git a/src/lib/database.c b/src/lib/database.c index dc4f41e..90c917f 100644 --- a/src/lib/database.c +++ b/src/lib/database.c @@ -480,22 +480,47 @@ _enum_types_table_init(Eina_Hash *typedef_table) * params_list must be freed. * */ static Eina_List* -_eolian_func_params_get(const Eolian_Function *func) +_eolian_func_params_get(const Eolian_Function *func, Eolian_Function_Type ftype) { Eina_List *list = NULL; void *data; - Eina_Iterator *itr = eolian_property_keys_get(func); - EINA_ITERATOR_FOREACH(itr, data) - { - list = eina_list_append(list, data); - } - eina_iterator_free(itr); - itr = eolian_property_values_get(func); - EINA_ITERATOR_FOREACH(itr, data) + + switch (ftype) { - list = eina_list_append(list, data); + case EOLIAN_UNRESOLVED: + break; + case EOLIAN_METHOD: + { + Eina_Iterator *itr = eolian_function_parameters_get(func); + EINA_ITERATOR_FOREACH(itr, data) + { + list = eina_list_append(list, data); + } + eina_iterator_free(itr); + break; + } + case EOLIAN_PROPERTY: + case EOLIAN_PROP_GET: + case EOLIAN_PROP_SET: + { + ftype = (ftype == EOLIAN_PROPERTY) ? EOLIAN_PROP_GET : ftype; + Eina_Iterator *itr = eolian_property_keys_get(func, ftype); + EINA_ITERATOR_FOREACH(itr, data) + { + list = eina_list_append(list, data); + } + eina_iterator_free(itr); + itr = eolian_property_values_get(func, ftype); + EINA_ITERATOR_FOREACH(itr, data) + { + list = eina_list_append(list, data); + } + eina_iterator_free(itr); + break; + } } - eina_iterator_free(itr); + + return list; } @@ -1038,8 +1063,8 @@ db_init(const char *db_path, const char *all_eo_path, const char *black_list) eina_hash_add(typedef_table, "Elm_Radio *", (void *) (uintptr_t) GUI_TYPE_OBJECT); eina_hash_add(typedef_table, "Eina_Bool", (void *) (uintptr_t) GUI_TYPE_BOOL); eina_hash_add(typedef_table, "bool", (void *) (uintptr_t) GUI_TYPE_BOOL); - eina_hash_add(typedef_table, "const char *", (void *) (uintptr_t) GUI_TYPE_STRING); - eina_hash_add(typedef_table, "const void *", (void *) (uintptr_t) GUI_TYPE_VOID); + eina_hash_add(typedef_table, "char *", (void *) (uintptr_t) GUI_TYPE_STRING); + eina_hash_add(typedef_table, "void *", (void *) (uintptr_t) GUI_TYPE_VOID); eina_hash_add(typedef_table, "Evas_Smart_Cb", (void *) (uintptr_t) GUI_TYPE_CB); eina_hash_add(typedef_table, "Elm_Interface_Scrollable_Min_Limit_Cb", (void *) (uintptr_t) GUI_TYPE_CB); eina_hash_add(typedef_table, "Elm_Object_Item *", (void *) (uintptr_t) GUI_TYPE_OBJECT_ITEM); @@ -1130,7 +1155,6 @@ db_init(const char *db_path, const char *all_eo_path, const char *black_list) ERR("DLSYM not found for %s", op_desc->func_set_name); free(func_set_name); } - /* if method is not PROPERTY or PROP_GET, NULL will be returned. */ func_get_name = _class_func_get_name_get(func); /* Name of get function is not saved, because we don't need to generate it. */ @@ -1206,7 +1230,8 @@ db_init(const char *db_path, const char *all_eo_path, const char *black_list) /* Copying parameters from table to Eina List */ { /* params list must be freed */ - Eina_List *params_list = _eolian_func_params_get(func); + Eina_List *params_list = _eolian_func_params_get(func, f_type); + /* Iterate over parameters in order to assign GUI_TYPE, * and types overrides. */ int i = 0; @@ -1229,7 +1254,7 @@ db_init(const char *db_path, const char *all_eo_path, const char *black_list) (eolian_type_type_get(base) == EOLIAN_TYPE_CLASS)) { c_type = eolian_type_name_get(base); - sprintf(c_type2, "%s%s *", eolian_type_is_const(base) ? "const " : "", c_type); + sprintf(c_type2, "%s *", c_type); } else if (eolian_type_type_get(base) == EOLIAN_TYPE_POINTER) { @@ -1237,8 +1262,7 @@ db_init(const char *db_path, const char *all_eo_path, const char *black_list) } else if (eolian_type_type_get(base) == EOLIAN_TYPE_VOID) { - c_type = "void"; - sprintf(c_type2, "%s%s *", eolian_type_is_const(base) ? "const " : "", c_type); + sprintf(c_type2, "void *"); } else if (eolian_type_type_get(base) == EOLIAN_TYPE_ENUM) { --