eolian: remove some unnecessary temps
authorDaniel Kolesa <d.kolesa@samsung.com>
Fri, 12 Sep 2014 12:25:26 +0000 (13:25 +0100)
committerDaniel Kolesa <d.kolesa@samsung.com>
Fri, 12 Sep 2014 12:25:26 +0000 (13:25 +0100)
src/lib/eolian/eo_definitions.c
src/lib/eolian/eo_definitions.h
src/lib/eolian/eo_parser.c

index 470f7e0..4f1b9d6 100644 (file)
@@ -31,24 +31,12 @@ eo_definitions_temps_free(Eo_Lexer_Temps *tmp)
    EINA_LIST_FREE(tmp->var_defs, var)
      database_var_del(var);
 
-   if (tmp->func)
-     database_function_del(tmp->func);
-
    if (tmp->param)
      database_parameter_del(tmp->param);
 
    EINA_LIST_FREE(tmp->str_items, s)
      if (s) eina_stringshare_del(s);
 
-   if (tmp->event)
-     database_event_del(tmp->event);
-
-   if (tmp->impl)
-     database_implement_del(tmp->impl);
-
-   if (tmp->ctor)
-     database_constructor_del(tmp->ctor);
-
    EINA_LIST_FREE(tmp->strs, s)
      if (s) eina_stringshare_del(s);
 
index abc1a6c..6fa35ed 100644 (file)
@@ -17,12 +17,8 @@ typedef struct _Eo_Lexer_Temps
    Eolian_Class *kls;
    Eina_List *type_defs;
    Eina_List *var_defs;
-   Eolian_Function *func;
    Eolian_Function_Parameter *param;
    Eina_List *str_items;
-   Eolian_Event *event;
-   Eolian_Implement *impl;
-   Eolian_Constructor *ctor;
    Eina_List *expr_defs;
    Eina_List *strs;
 } Eo_Lexer_Temps;
index 5faa499..b54c4c0 100644 (file)
@@ -1348,7 +1348,7 @@ parse_property(Eo_Lexer *ls)
    prop->base.file = eina_stringshare_ref(ls->filename);
    prop->base.line = ls->line_number;
    prop->base.column = ls->column;
-   ls->tmp.func = prop;
+   ls->tmp.kls->properties = eina_list_append(ls->tmp.kls->properties, prop);
    check(ls, TOK_VALUE);
    prop->name = eina_stringshare_ref(ls->t.value.s);
    eo_lexer_get(ls);
@@ -1422,7 +1422,7 @@ parse_method(Eo_Lexer *ls, Eina_Bool ctor)
    meth->base.file = eina_stringshare_ref(ls->filename);
    meth->base.line = ls->line_number;
    meth->base.column = ls->column;
-   ls->tmp.func = meth;
+   ls->tmp.kls->methods = eina_list_append(ls->tmp.kls->methods, meth);
    if (ctor)
      {
         if (ls->t.token != TOK_VALUE)
@@ -1545,7 +1545,7 @@ parse_implement(Eo_Lexer *ls, Eina_Bool iface)
    impl->base.file = eina_stringshare_ref(ls->filename);
    impl->base.line = iline;
    impl->base.column = icol;
-   ls->tmp.impl = impl;
+   ls->tmp.kls->implements = eina_list_append(ls->tmp.kls->implements, impl);
    switch (ls->t.kw)
      {
         case KW_at_virtual:
@@ -1644,7 +1644,7 @@ parse_constructor(Eo_Lexer *ls)
    ctor->base.file = eina_stringshare_ref(ls->filename);
    ctor->base.line = ls->line_number;
    ctor->base.column = ls->column;
-   ls->tmp.ctor = ctor;
+   ls->tmp.kls->constructors = eina_list_append(ls->tmp.kls->constructors, ctor);
    if (ls->t.token == '.')
      {
         check_next(ls, '.');
@@ -1685,7 +1685,7 @@ parse_event(Eo_Lexer *ls)
    ev->base.line = ls->line_number;
    ev->base.column = ls->column;
    Eina_Strbuf *buf = push_strbuf(ls);
-   ls->tmp.event = ev;
+   ls->tmp.kls->events = eina_list_append(ls->tmp.kls->events, ev);
    check(ls, TOK_VALUE);
    eina_strbuf_append(buf, ls->t.value.s);
    eo_lexer_get(ls);
@@ -1727,53 +1727,28 @@ parse_event(Eo_Lexer *ls)
 static void
 parse_methods(Eo_Lexer *ls)
 {
-   PARSE_SECTION
-     {
-        parse_method(ls, EINA_FALSE);
-        ls->tmp.kls->methods = eina_list_append(ls->tmp.kls->methods,
-                                                ls->tmp.func);
-        ls->tmp.func = NULL;
-     }
+   PARSE_SECTION parse_method(ls, EINA_FALSE);
    check_match(ls, '}', '{', line, col);
 }
 
 static void
 parse_properties(Eo_Lexer *ls)
 {
-   PARSE_SECTION
-     {
-        parse_property(ls);
-        ls->tmp.kls->properties = eina_list_append(ls->tmp.kls->properties,
-                                                   ls->tmp.func);
-        ls->tmp.func = NULL;
-     }
+   PARSE_SECTION parse_property(ls);
    check_match(ls, '}', '{', line, col);
 }
 
 static void
 parse_implements(Eo_Lexer *ls, Eina_Bool iface)
 {
-   PARSE_SECTION
-     {
-        parse_implement(ls, iface);
-        if (ls->tmp.impl)
-          ls->tmp.kls->implements = eina_list_append(ls->tmp.kls->implements,
-                                                     ls->tmp.impl);
-        ls->tmp.impl = NULL;
-     }
+   PARSE_SECTION parse_implement(ls, iface);
    check_match(ls, '}', '{', line, col);
 }
 
 static void
 parse_constructors(Eo_Lexer *ls)
 {
-   PARSE_SECTION
-     {
-        parse_constructor(ls);
-        ls->tmp.kls->constructors = eina_list_append(ls->tmp.kls->constructors,
-                                                     ls->tmp.ctor);
-        ls->tmp.ctor = NULL;
-     }
+   PARSE_SECTION parse_constructor(ls);
    check_match(ls, '}', '{', line, col);
 }
 
@@ -1787,12 +1762,7 @@ parse_events(Eo_Lexer *ls)
    check(ls, '{');
    eo_lexer_get(ls);
    while (ls->t.token != '}')
-     {
-        parse_event(ls);
-        ls->tmp.kls->events = eina_list_append(ls->tmp.kls->events,
-                                               ls->tmp.event);
-        ls->tmp.event = NULL;
-     }
+     parse_event(ls);
    check_match(ls, '}', '{', line, col);
 }