q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=5d1cd61c92b54291c59cba5c3f6a43fbe3a751ec

commit 5d1cd61c92b54291c59cba5c3f6a43fbe3a751ec
Author: Daniel Kolesa <[email protected]>
Date:   Mon Jul 21 11:42:05 2014 +0100

    eolian: put structs and typedefs right in the respective hashmaps without 
going through nodes
---
 src/lib/eolian/database_fill.c | 14 ++------------
 src/lib/eolian/eo_lexer.c      |  5 -----
 src/lib/eolian/eo_lexer.h      |  4 +---
 src/lib/eolian/eo_parser.c     |  4 ++--
 4 files changed, 5 insertions(+), 22 deletions(-)

diff --git a/src/lib/eolian/database_fill.c b/src/lib/eolian/database_fill.c
index f4c4493..7c5129d 100644
--- a/src/lib/eolian/database_fill.c
+++ b/src/lib/eolian/database_fill.c
@@ -433,7 +433,7 @@ eo_parser_database_fill(const char *filename, Eina_Bool eot)
         return EINA_FALSE;
      }
 
-   if (eot) goto nodeloop;
+   if (eot) goto done;
 
    EINA_LIST_FOREACH(ls->nodes, k, nd) if (nd->type == NODE_CLASS)
      {
@@ -448,7 +448,6 @@ eo_parser_database_fill(const char *filename, Eina_Bool eot)
         return EINA_FALSE;
      }
 
-nodeloop:
    EINA_LIST_FOREACH(ls->nodes, k, nd)
      {
         switch (nd->type)
@@ -457,21 +456,12 @@ nodeloop:
              if (!_db_fill_class(nd->def_class, filename))
                goto error;
              break;
-           case NODE_TYPEDEF:
-             if (!database_type_add(nd->def_typedef))
-               goto error;
-             nd->def_typedef = NULL;
-             break;
-           case NODE_STRUCT:
-             if (!database_struct_add(nd->def_struct))
-               goto error;
-             nd->def_struct = NULL;
-             break;
            default:
              break;
           }
      }
 
+done:
    eo_lexer_free(ls);
    return EINA_TRUE;
 
diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c
index 46a2078..341d2c0 100644
--- a/src/lib/eolian/eo_lexer.c
+++ b/src/lib/eolian/eo_lexer.c
@@ -607,11 +607,6 @@ eo_lexer_free(Eo_Lexer *ls)
            case NODE_CLASS:
              eo_definitions_class_def_free(nd->def_class);
              break;
-           case NODE_TYPEDEF:
-             database_typedef_del(nd->def_typedef);
-             break;
-           case NODE_STRUCT:
-             database_type_del(nd->def_struct);
            default:
              break;
           }
diff --git a/src/lib/eolian/eo_lexer.h b/src/lib/eolian/eo_lexer.h
index 260d5a2..c5ba47f 100644
--- a/src/lib/eolian/eo_lexer.h
+++ b/src/lib/eolian/eo_lexer.h
@@ -95,9 +95,7 @@ typedef struct _Eo_Token
 
 enum Nodes
 {
-   NODE_CLASS = 0,
-   NODE_TYPEDEF,
-   NODE_STRUCT
+   NODE_CLASS = 0
 };
 
 /* represents a node, aka a result of parsing - currently class, typedef
diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index 8c4a4f3..a5ba28d 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -268,7 +268,7 @@ parse_struct(Eo_Lexer *ls, const char *name, Eina_Bool 
is_extern)
           }
      }
    check_match(ls, '}', '{', line, column);
-   if (name) append_node(ls, NODE_STRUCT, def);
+   if (name) database_struct_add(def);
    return def;
 }
 
@@ -1060,7 +1060,7 @@ parse_unit(Eo_Lexer *ls, Eina_Bool eot)
       case KW_type:
         {
            parse_typedef(ls);
-           append_node(ls, NODE_TYPEDEF, ls->tmp.typedef_def);
+           database_type_add(ls->tmp.typedef_def);
            ls->tmp.typedef_def = NULL;
            break;
         }

-- 


Reply via email to