eolian: remove str_items from temps

This commit is contained in:
Daniel Kolesa 2014-09-12 15:04:18 +01:00
parent 87559458f2
commit 3d8069f226
3 changed files with 6 additions and 15 deletions

View File

@ -720,9 +720,6 @@ _temps_free(Eo_Lexer_Temps *tmp)
EINA_LIST_FREE(tmp->type_defs, tp) EINA_LIST_FREE(tmp->type_defs, tp)
database_type_del(tp); database_type_del(tp);
EINA_LIST_FREE(tmp->str_items, s)
if (s) eina_stringshare_del(s);
EINA_LIST_FREE(tmp->strs, s) EINA_LIST_FREE(tmp->strs, s)
if (s) eina_stringshare_del(s); if (s) eina_stringshare_del(s);

View File

@ -100,7 +100,6 @@ typedef struct _Eo_Lexer_Temps
Eina_List *classes; Eina_List *classes;
Eina_List *str_bufs; Eina_List *str_bufs;
Eina_List *type_defs; Eina_List *type_defs;
Eina_List *str_items;
Eina_List *expr_defs; Eina_List *expr_defs;
Eina_List *strs; Eina_List *strs;
} Eo_Lexer_Temps; } Eo_Lexer_Temps;

View File

@ -176,22 +176,20 @@ parse_name(Eo_Lexer *ls, Eina_Strbuf *buf)
return buf; return buf;
} }
static Eina_List * static void
parse_name_list(Eo_Lexer *ls) parse_name_list(Eo_Lexer *ls, Eina_List **out)
{ {
Eina_Strbuf *buf = push_strbuf(ls); Eina_Strbuf *buf = push_strbuf(ls);
ls->tmp.str_items = NULL;
parse_name(ls, buf); parse_name(ls, buf);
ls->tmp.str_items = eina_list_append(ls->tmp.str_items, *out = eina_list_append(*out,
eina_stringshare_add(eina_strbuf_string_get(buf))); eina_stringshare_add(eina_strbuf_string_get(buf)));
while (test_next(ls, ',')) while (test_next(ls, ','))
{ {
parse_name(ls, buf); parse_name(ls, buf);
ls->tmp.str_items = eina_list_append(ls->tmp.str_items, *out = eina_list_append(*out,
eina_stringshare_add(eina_strbuf_string_get(buf))); eina_stringshare_add(eina_strbuf_string_get(buf)));
} }
pop_strbuf(ls); pop_strbuf(ls);
return ls->tmp.str_items;
} }
#define NAMESPACE_PARSE(def, dname) \ #define NAMESPACE_PARSE(def, dname) \
@ -1853,10 +1851,7 @@ parse_class(Eo_Lexer *ls, Eolian_Class_Type type)
col = ls->column; col = ls->column;
check_next(ls, '('); check_next(ls, '(');
if (ls->t.token != ')') if (ls->t.token != ')')
{ parse_name_list(ls, &ls->tmp.kls->inherits);
ls->tmp.kls->inherits = parse_name_list(ls);
ls->tmp.str_items = NULL;
}
check_match(ls, ')', '(', line, col); check_match(ls, ')', '(', line, col);
} }
line = ls->line_number; line = ls->line_number;