summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Kolesa <d.kolesa@samsung.com>2014-08-19 11:53:50 +0100
committerDaniel Kolesa <d.kolesa@samsung.com>2014-08-21 09:26:05 +0100
commitd788986fd8f4416e2f42fe2cf2282bdf16d5cf3d (patch)
tree80e941ae321b95bc16a31f9887f915075cbe387b
parentdbd8e4cec5d6711e740b7a23752e2b4be06b5b48 (diff)
downloadefl-d788986fd8f4416e2f42fe2cf2282bdf16d5cf3d.tar.gz
eolian: reduce code duplication
-rw-r--r--src/lib/eolian/database_fill.c74
1 files changed, 9 insertions, 65 deletions
diff --git a/src/lib/eolian/database_fill.c b/src/lib/eolian/database_fill.c
index f741cb15da..79bd453789 100644
--- a/src/lib/eolian/database_fill.c
+++ b/src/lib/eolian/database_fill.c
@@ -1,69 +1,13 @@
#include "eo_parser.h"
static Eina_Bool
-_db_fill_key(Eolian_Function *foo_id, Eo_Param_Def *param)
-{
- Eolian_Function_Parameter *p = database_parameter_add(param->type,
- param->name,
- param->comment);
- foo_id->keys = eina_list_append(foo_id->keys, p);
- p->nonull = param->nonull;
- param->type = NULL;
-
- p->base = param->base;
- param->base.file = NULL;
-
- return EINA_TRUE;
-}
-
-static Eina_Bool
-_db_fill_keys(Eolian_Function *foo_id, Eo_Property_Def *prop)
-{
- Eo_Param_Def *param;
- Eina_List *l;
-
- EINA_LIST_FOREACH(prop->keys, l, param)
- if (!_db_fill_key(foo_id, param)) return EINA_FALSE;
-
- return EINA_TRUE;
-}
-
-static Eina_Bool
-_db_fill_value(Eolian_Function *foo_id, Eo_Param_Def *param)
-{
- Eolian_Function_Parameter *p = database_parameter_add(param->type,
- param->name,
- param->comment);
- foo_id->params = eina_list_append(foo_id->params, p);
- p->nonull = param->nonull;
- param->type = NULL;
-
- p->base = param->base;
- param->base.file = NULL;
-
- return EINA_TRUE;
-}
-
-static Eina_Bool
-_db_fill_values(Eolian_Function *foo_id, Eo_Property_Def *prop)
-{
- Eo_Param_Def *param;
- Eina_List *l;
-
- EINA_LIST_FOREACH(prop->values, l, param)
- if (!_db_fill_value(foo_id, param)) return EINA_FALSE;
-
- return EINA_TRUE;
-}
-
-static Eina_Bool
-_db_fill_param(Eolian_Function *foo_id, Eo_Param_Def *param)
+_db_fill_param(Eina_List **plist, Eo_Param_Def *param)
{
Eolian_Function_Parameter *p = database_parameter_add(param->type,
param->name,
param->comment);
p->param_dir = param->way;
- foo_id->params = eina_list_append(foo_id->params, p);
+ *plist = eina_list_append(*plist, p);
p->nonull = param->nonull;
param->type = NULL;
@@ -74,13 +18,13 @@ _db_fill_param(Eolian_Function *foo_id, Eo_Param_Def *param)
}
static Eina_Bool
-_db_fill_params(Eolian_Function *foo_id, Eo_Method_Def *meth)
+_db_fill_params(Eina_List *oplist, Eina_List **plist)
{
Eo_Param_Def *param;
Eina_List *l;
- EINA_LIST_FOREACH(meth->params, l, param)
- if (!_db_fill_param(foo_id, param)) return EINA_FALSE;
+ EINA_LIST_FOREACH(oplist, l, param)
+ if (!_db_fill_param(plist, param)) return EINA_FALSE;
return EINA_TRUE;
}
@@ -195,8 +139,8 @@ _db_fill_property(Eolian_Class *cl, Eo_Class_Def *kls, Eo_Property_Def *prop)
foo_id->scope = prop->scope;
foo_id->is_class = prop->is_class;
- if (!_db_fill_keys (foo_id, prop)) goto failure;
- if (!_db_fill_values (foo_id, prop)) goto failure;
+ if (!_db_fill_params (prop->keys , &(foo_id->keys ))) goto failure;
+ if (!_db_fill_params (prop->values, &(foo_id->params))) goto failure;
if (!_db_fill_accessors(foo_id, kls, prop)) goto failure;
if (!prop->accessors)
@@ -256,7 +200,7 @@ _db_fill_method(Eolian_Class *cl, Eo_Class_Def *kls, Eo_Method_Def *meth)
if (meth->only_legacy)
foo_id->get_only_legacy = EINA_TRUE;
- _db_fill_params(foo_id, meth);
+ _db_fill_params(meth->params, &(foo_id->params));
if (kls->type == EOLIAN_CLASS_INTERFACE)
foo_id->get_virtual_pure = EINA_TRUE;
@@ -291,7 +235,7 @@ _db_fill_ctor(Eolian_Class *cl, Eo_Method_Def *meth)
foo_id->get_legacy = eina_stringshare_ref(meth->legacy);
- _db_fill_params(foo_id, meth);
+ _db_fill_params(meth->params, &(foo_id->params));
foo_id->base = meth->base;
meth->base.file = NULL;