diff options
author | Daniel Kolesa <d.kolesa@samsung.com> | 2014-08-15 14:14:43 +0100 |
---|---|---|
committer | Daniel Kolesa <d.kolesa@samsung.com> | 2014-08-21 09:26:05 +0100 |
commit | dbf48c0eccfe70bbde6de5036947b3cc916b2d9f (patch) | |
tree | 5cdee216133c1af7837ba2164a99f8faf5166c18 | |
parent | 97d9bf37fa3e0297be92805dd5617e75c40cb037 (diff) | |
download | efl-dbf48c0eccfe70bbde6de5036947b3cc916b2d9f.tar.gz |
eolian: remove the remaining superfluous database_ functions
-rw-r--r-- | src/lib/eolian/database_class.c | 130 | ||||
-rw-r--r-- | src/lib/eolian/database_fill.c | 47 | ||||
-rw-r--r-- | src/lib/eolian/database_function_parameter.c | 24 | ||||
-rw-r--r-- | src/lib/eolian/database_implement_api.c | 40 | ||||
-rw-r--r-- | src/lib/eolian/eolian_database.h | 21 |
5 files changed, 60 insertions, 202 deletions
diff --git a/src/lib/eolian/database_class.c b/src/lib/eolian/database_class.c index a93a1049cc..a8e31edff9 100644 --- a/src/lib/eolian/database_class.c +++ b/src/lib/eolian/database_class.c @@ -68,133 +68,3 @@ database_class_add(const char *class_name, Eolian_Class_Type type) free(full_name); return cl; } - -/* - * ret false -> clash, class = NULL - * ret true && class -> only one class corresponding - * ret true && !class -> no class corresponding - */ -Eina_Bool database_class_name_validate(const char *class_name, const Eolian_Class **cl) -{ - char *name = strdup(class_name); - char *colon = name + 1; - const Eolian_Class *found_class = NULL; - const Eolian_Class *candidate; - if (cl) *cl = NULL; - do - { - colon = strchr(colon, '.'); - if (colon) *colon = '\0'; - candidate = eolian_class_get_by_name(name); - if (candidate) - { - if (found_class) - { - ERR("Name clash between class %s and class %s", - candidate->full_name, - found_class->full_name); - free(name); - return EINA_FALSE; // Names clash - } - found_class = candidate; - } - if (colon) *colon++ = '.'; - } - while(colon); - if (cl) *cl = found_class; - free(name); - return EINA_TRUE; -} - -Eina_Bool -database_class_inherit_add(Eolian_Class *cl, const char *inherit_class_name) -{ - 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; -} - -void -database_class_description_set(Eolian_Class *cl, const char *description) -{ - EINA_SAFETY_ON_NULL_RETURN(cl); - cl->description = eina_stringshare_add(description); -} - -void -database_class_legacy_prefix_set(Eolian_Class *cl, const char *legacy_prefix) -{ - EINA_SAFETY_ON_NULL_RETURN(cl); - cl->legacy_prefix = eina_stringshare_add(legacy_prefix); -} - -void -database_class_eo_prefix_set(Eolian_Class *cl, const char *eo_prefix) -{ - EINA_SAFETY_ON_NULL_RETURN(cl); - cl->eo_prefix = eina_stringshare_add(eo_prefix); -} - -void -database_class_data_type_set(Eolian_Class *cl, const char *data_type) -{ - EINA_SAFETY_ON_NULL_RETURN(cl); - cl->data_type = eina_stringshare_add(data_type); -} - -Eina_Bool database_class_function_add(Eolian_Class *cl, Eolian_Function *fid) -{ - EINA_SAFETY_ON_NULL_RETURN_VAL(cl, EINA_FALSE); - EINA_SAFETY_ON_FALSE_RETURN_VAL(fid && cl, EINA_FALSE); - switch (fid->type) - { - case EOLIAN_PROPERTY: - case EOLIAN_PROP_SET: - case EOLIAN_PROP_GET: - cl->properties = eina_list_append(cl->properties, fid); - break; - case EOLIAN_METHOD: - cl->methods = eina_list_append(cl->methods, fid); - break; - case EOLIAN_CTOR: - cl->constructors = eina_list_append(cl->constructors, fid); - break; - default: - ERR("Bad function type %d.", fid->type); - return EINA_FALSE; - } - return EINA_TRUE; -} - -Eina_Bool -database_class_implement_add(Eolian_Class *cl, Eolian_Implement *impl_desc) -{ - EINA_SAFETY_ON_NULL_RETURN_VAL(impl_desc, EINA_FALSE); - EINA_SAFETY_ON_NULL_RETURN_VAL(cl, EINA_FALSE); - cl->implements = eina_list_append(cl->implements, impl_desc); - return EINA_TRUE; -} - -Eina_Bool -database_class_event_add(Eolian_Class *cl, Eolian_Event *event_desc) -{ - EINA_SAFETY_ON_FALSE_RETURN_VAL(event_desc && cl, EINA_FALSE); - cl->events = eina_list_append(cl->events, event_desc); - return EINA_TRUE; -} - -Eina_Bool -database_class_ctor_enable_set(Eolian_Class *cl, Eina_Bool enable) -{ - 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 *cl, Eina_Bool enable) -{ - EINA_SAFETY_ON_NULL_RETURN_VAL(cl, EINA_FALSE); - cl->class_dtor_enable = enable; - return EINA_TRUE; -} diff --git a/src/lib/eolian/database_fill.c b/src/lib/eolian/database_fill.c index e3745f653f..6135fd2108 100644 --- a/src/lib/eolian/database_fill.c +++ b/src/lib/eolian/database_fill.c @@ -7,7 +7,7 @@ _db_fill_key(Eolian_Function *foo_id, Eo_Param_Def *param) param->name, param->comment); foo_id->keys = eina_list_append(foo_id->keys, p); - database_parameter_nonull_set(p, param->nonull); + p->nonull = param->nonull; param->type = NULL; p->base = param->base; @@ -35,7 +35,7 @@ _db_fill_value(Eolian_Function *foo_id, Eo_Param_Def *param) param->name, param->comment); foo_id->params = eina_list_append(foo_id->params, p); - database_parameter_nonull_set(p, param->nonull); + p->nonull = param->nonull; param->type = NULL; p->base = param->base; @@ -64,7 +64,7 @@ _db_fill_param(Eolian_Function *foo_id, Eo_Param_Def *param) param->comment); p->param_dir = param->way; foo_id->params = eina_list_append(foo_id->params, p); - database_parameter_nonull_set(p, param->nonull); + p->nonull = param->nonull; param->type = NULL; p->base = param->base; @@ -145,9 +145,10 @@ _db_fill_accessor(Eolian_Function *foo_id, Eo_Class_Def *kls, } else if (acc_param->is_const) { - database_parameter_const_attribute_set(desc, - accessor->type == GETTER, - EINA_TRUE); + if (accessor->type == GETTER) + desc->is_const_on_get = EINA_TRUE; + else + desc->is_const_on_set = EINA_TRUE; } } @@ -205,7 +206,7 @@ _db_fill_property(Eolian_Class *cl, Eo_Class_Def *kls, Eo_Property_Def *prop) prop->base.file = NULL; } - database_class_function_add(cl, foo_id); + cl->properties = eina_list_append(cl->properties, foo_id); return EINA_TRUE; @@ -233,7 +234,7 @@ _db_fill_method(Eolian_Class *cl, Eo_Class_Def *kls, Eo_Method_Def *meth) foo_id->scope = meth->scope; - database_class_function_add(cl, foo_id); + cl->methods = eina_list_append(cl->methods, foo_id); if (meth->ret) { @@ -278,7 +279,7 @@ _db_fill_ctor(Eolian_Class *cl, Eo_Method_Def *meth) { Eolian_Function *foo_id = database_function_new(meth->name, EOLIAN_CTOR); - database_class_function_add(cl, foo_id); + cl->constructors = eina_list_append(cl->constructors, foo_id); if (meth->ret) foo_id->get_return_comment = eina_stringshare_ref(meth->ret->comment); @@ -312,13 +313,13 @@ _db_fill_implement(Eolian_Class *cl, Eolian_Implement *impl) if (!strcmp(impl_name, "class.constructor")) { - database_class_ctor_enable_set(cl, EINA_TRUE); + cl->class_ctor_enable = EINA_TRUE; return 1; } if (!strcmp(impl_name, "class.destructor")) { - database_class_dtor_enable_set(cl, EINA_TRUE); + cl->class_dtor_enable = EINA_TRUE; return 1; } @@ -361,7 +362,7 @@ _db_fill_implement(Eolian_Class *cl, Eolian_Implement *impl) foo_id->get_virtual_pure = EINA_TRUE; return 1; } - database_class_implement_add(cl, impl); + cl->implements = eina_list_append(cl->implements, impl); return 0; } @@ -390,7 +391,7 @@ _db_fill_events(Eolian_Class *cl, Eo_Class_Def *kls) EINA_LIST_FOREACH(kls->events, l, event) { - database_class_event_add(cl, event); + cl->events = eina_list_append(cl->events, event); eina_list_data_set(l, NULL); /* prevent double free */ } @@ -407,27 +408,17 @@ _db_fill_class(Eo_Class_Def *kls) eina_hash_set(_classesf, kls->base.file, cl); if (kls->comment) - { - database_class_description_set(cl, kls->comment); - } + cl->description = eina_stringshare_ref(kls->comment); EINA_LIST_FOREACH(kls->inherits, l, s) - { - database_class_inherit_add(cl, s); - } + cl->inherits = eina_list_append(cl->inherits, eina_stringshare_add(s)); if (kls->legacy_prefix) - { - database_class_legacy_prefix_set(cl, kls->legacy_prefix); - } + cl->legacy_prefix = eina_stringshare_ref(kls->legacy_prefix); if (kls->eo_prefix) - { - database_class_eo_prefix_set(cl, kls->eo_prefix); - } + cl->eo_prefix = eina_stringshare_ref(kls->eo_prefix); if (kls->data_type) - { - database_class_data_type_set(cl, kls->data_type); - } + cl->data_type = eina_stringshare_ref(kls->data_type); if (!_db_fill_ctors (cl, kls)) return EINA_FALSE; if (!_db_fill_properties(cl, kls)) return EINA_FALSE; diff --git a/src/lib/eolian/database_function_parameter.c b/src/lib/eolian/database_function_parameter.c index fde8c86b37..d6498169c7 100644 --- a/src/lib/eolian/database_function_parameter.c +++ b/src/lib/eolian/database_function_parameter.c @@ -22,27 +22,3 @@ database_parameter_del(Eolian_Function_Parameter *pdesc) eina_stringshare_del(pdesc->description); free(pdesc); } - -void -database_parameter_const_attribute_set(Eolian_Function_Parameter *param, Eina_Bool is_get, Eina_Bool is_const) -{ - EINA_SAFETY_ON_NULL_RETURN(param); - if (is_get) - param->is_const_on_get = is_const; - else - param->is_const_on_set = is_const; -} - -void -database_parameter_type_set(Eolian_Function_Parameter *param, Eolian_Type *types) -{ - EINA_SAFETY_ON_NULL_RETURN(param); - param->type = types; -} - -void -database_parameter_nonull_set(Eolian_Function_Parameter *param, Eina_Bool nonull) -{ - EINA_SAFETY_ON_NULL_RETURN(param); - param->nonull = nonull; -} diff --git a/src/lib/eolian/database_implement_api.c b/src/lib/eolian/database_implement_api.c index 437d22d343..d668b3fdf4 100644 --- a/src/lib/eolian/database_implement_api.c +++ b/src/lib/eolian/database_implement_api.c @@ -8,13 +8,51 @@ eolian_implement_full_name_get(const Eolian_Implement *impl) return impl->full_name; } +/* + * ret false -> clash, class = NULL + * ret true && class -> only one class corresponding + * ret true && !class -> no class corresponding + */ +static Eina_Bool +_class_name_validate(const char *class_name, const Eolian_Class **cl) +{ + char *name = strdup(class_name); + char *colon = name + 1; + const Eolian_Class *found_class = NULL; + const Eolian_Class *candidate; + if (cl) *cl = NULL; + do + { + colon = strchr(colon, '.'); + if (colon) *colon = '\0'; + candidate = eolian_class_get_by_name(name); + if (candidate) + { + if (found_class) + { + ERR("Name clash between class %s and class %s", + candidate->full_name, + found_class->full_name); + free(name); + return EINA_FALSE; // Names clash + } + found_class = candidate; + } + if (colon) *colon++ = '.'; + } + while(colon); + if (cl) *cl = found_class; + free(name); + return EINA_TRUE; +} + static Eina_Bool _fill_class(Eolian_Implement *impl) { const Eolian_Class *class = NULL; if (impl->klass) return EINA_TRUE; - if (!database_class_name_validate(impl->full_name, &class) || !class) + if (!_class_name_validate(impl->full_name, &class) || !class) return EINA_FALSE; impl->klass = class; return EINA_TRUE; diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h index 35290f557d..baec89793d 100644 --- a/src/lib/eolian/eolian_database.h +++ b/src/lib/eolian/eolian_database.h @@ -262,6 +262,8 @@ struct _Eolian_Variable int database_init(); int database_shutdown(); +char *database_class_to_filename(const char *cname); + /* types */ Eina_Bool database_type_add(Eolian_Type *def); @@ -289,22 +291,6 @@ Eina_Bool database_var_add(Eolian_Variable *var); Eolian_Class *database_class_add(const char *class_name, Eolian_Class_Type type); void database_class_del(Eolian_Class *cl); -char *database_class_to_filename(const char *cname); - -Eina_Bool database_class_inherit_add(Eolian_Class *cl, const char *inherit_class_name); -Eina_Bool database_class_function_add(Eolian_Class *cl, Eolian_Function *foo_id); -Eina_Bool database_class_implement_add(Eolian_Class *cl, Eolian_Implement *impl_id); -Eina_Bool database_class_event_add(Eolian_Class *cl, Eolian_Event *event_desc); - -void database_class_description_set(Eolian_Class *cl, const char *description); -void database_class_legacy_prefix_set(Eolian_Class *cl, const char *legacy_prefix); -void database_class_eo_prefix_set(Eolian_Class *cl, const char *eo_prefix); -void database_class_data_type_set(Eolian_Class *cl, const char *data_type); -Eina_Bool database_class_ctor_enable_set(Eolian_Class *cl, Eina_Bool enable); -Eina_Bool database_class_dtor_enable_set(Eolian_Class *cl, Eina_Bool enable); - -Eina_Bool database_class_name_validate(const char *class_name, const Eolian_Class **cl); - /* functions */ Eolian_Function *database_function_new(const char *function_name, Eolian_Function_Type foo_type); @@ -315,9 +301,6 @@ void database_function_del(Eolian_Function *fid); Eolian_Function_Parameter *database_parameter_add(Eolian_Type *type, const char *name, const char *description); void database_parameter_del(Eolian_Function_Parameter *pdesc); -void database_parameter_const_attribute_set(Eolian_Function_Parameter *param, Eina_Bool is_get, Eina_Bool is_const); -void database_parameter_nonull_set(Eolian_Function_Parameter *param, Eina_Bool nonull); - /* implements */ void database_implement_del(Eolian_Implement *impl); |