eolian: more temp cleanups

This commit is contained in:
Daniel Kolesa 2014-09-12 13:35:48 +01:00
parent 212d500016
commit dd6f167795
3 changed files with 10 additions and 19 deletions

View File

@ -7,7 +7,6 @@ void
eo_definitions_temps_free(Eo_Lexer_Temps *tmp)
{
Eina_Strbuf *buf;
Eolian_Function_Parameter *par;
Eolian_Type *tp;
Eolian_Variable *var;
Eolian_Class *cl;
@ -16,9 +15,6 @@ eo_definitions_temps_free(Eo_Lexer_Temps *tmp)
EINA_LIST_FREE(tmp->str_bufs, buf)
eina_strbuf_free(buf);
EINA_LIST_FREE(tmp->params, par)
database_parameter_del(par);
if (tmp->kls)
database_class_del(tmp->kls);

View File

@ -10,10 +10,9 @@
typedef struct _Eo_Lexer_Temps
{
Eolian_Class *kls;
Eina_List *classes;
Eina_List *str_bufs;
Eina_List *params;
Eolian_Class *kls;
Eina_List *type_defs;
Eina_List *var_defs;
Eina_List *str_items;

View File

@ -1136,13 +1136,14 @@ parse_return(Eo_Lexer *ls, Eo_Ret_Def *ret, Eina_Bool allow_void)
}
static void
parse_param(Eo_Lexer *ls, Eina_Bool allow_inout, Eina_Bool is_vals)
parse_param(Eo_Lexer *ls, Eina_List **params, Eina_Bool allow_inout,
Eina_Bool is_vals)
{
Eolian_Function_Parameter *par = calloc(1, sizeof(Eolian_Function_Parameter));
par->base.file = eina_stringshare_ref(ls->filename);
par->base.line = ls->line_number;
par->base.column = ls->column;
ls->tmp.params = eina_list_append(ls->tmp.params, par);
*params = eina_list_append(*params, par);
if (allow_inout)
{
if (ls->t.kw == KW_at_in)
@ -1309,9 +1310,10 @@ end:
}
static void
parse_params(Eo_Lexer *ls, Eina_Bool allow_inout, Eina_Bool is_vals)
parse_params(Eo_Lexer *ls, Eina_List **params, Eina_Bool allow_inout,
Eina_Bool is_vals)
{
PARSE_SECTION parse_param(ls, allow_inout, is_vals);
PARSE_SECTION parse_param(ls, params, allow_inout, is_vals);
check_match(ls, '}', '{', line, col);
}
@ -1381,15 +1383,11 @@ body:
break;
case KW_keys:
CASE_LOCK(ls, keys, "keys definition")
parse_params(ls, EINA_FALSE, EINA_FALSE);
prop->keys = ls->tmp.params;
ls->tmp.params = NULL;
parse_params(ls, &prop->keys, EINA_FALSE, EINA_FALSE);
break;
case KW_values:
CASE_LOCK(ls, values, "values definition")
parse_params(ls, EINA_FALSE, EINA_TRUE);
prop->params = ls->tmp.params;
ls->tmp.params = NULL;
parse_params(ls, &prop->params, EINA_FALSE, EINA_TRUE);
break;
default:
goto end;
@ -1495,9 +1493,7 @@ body:
break;
case KW_params:
CASE_LOCK(ls, params, "params definition")
parse_params(ls, EINA_TRUE, EINA_FALSE);
meth->params = ls->tmp.params;
ls->tmp.params = NULL;
parse_params(ls, &meth->params, EINA_TRUE, EINA_FALSE);
break;
default:
goto end;