q66 pushed a commit to branch master.

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

commit f55572d79e90fb7355852b4342d8c20526fa3e20
Author: Daniel Kolesa <d.kol...@samsung.com>
Date:   Thu Sep 11 10:50:48 2014 +0100

    eolian: remove Eo_Class_Def (fill bits still remaining)
---
 src/lib/eolian/database_class.c | 44 +++++++++++++++------------------------
 src/lib/eolian/database_fill.c  |  8 +++----
 src/lib/eolian/eo_definitions.c | 46 +----------------------------------------
 src/lib/eolian/eo_definitions.h | 22 +-------------------
 src/lib/eolian/eo_lexer.c       |  2 +-
 src/lib/eolian/eo_lexer.h       |  5 +----
 src/lib/eolian/eo_parser.c      |  8 ++++++-
 7 files changed, 32 insertions(+), 103 deletions(-)

diff --git a/src/lib/eolian/database_class.c b/src/lib/eolian/database_class.c
index 1c6ff14..01833ac 100644
--- a/src/lib/eolian/database_class.c
+++ b/src/lib/eolian/database_class.c
@@ -4,46 +4,36 @@
 void
 database_class_del(Eolian_Class *cl)
 {
-   Eina_Stringshare *inherit_name;
-   Eina_List *inherits = cl->inherits;
    Eolian_Function *fid;
    Eolian_Event *ev;
-   const char *sp;
+   Eolian_Implement *impl;
+   Eolian_Constructor *ctor;
+   const char *s;
 
    if (cl->base.file) eina_stringshare_del(cl->base.file);
 
-   EINA_LIST_FREE(inherits, inherit_name)
-     eina_stringshare_del(inherit_name);
+   EINA_LIST_FREE(cl->inherits, s)
+     if (s) eina_stringshare_del(s);
 
-   Eolian_Implement *impl;
-   Eina_List *implements = cl->implements;
-   EINA_LIST_FREE(implements, impl)
-     {
-        eina_stringshare_del(impl->full_name);
-        free(impl);
-     }
+   EINA_LIST_FREE(cl->implements, impl)
+     database_implement_del(impl);
 
-   Eolian_Constructor *ctor;
-   Eina_List *constructors = cl->constructors;
-   EINA_LIST_FREE(constructors, ctor)
-     {
-        eina_stringshare_del(ctor->full_name);
-        free(ctor);
-     }
+   EINA_LIST_FREE(cl->constructors, ctor)
+     database_constructor_del(ctor);
 
    EINA_LIST_FREE(cl->methods, fid) database_function_del(fid);
    EINA_LIST_FREE(cl->properties, fid) database_function_del(fid);
    EINA_LIST_FREE(cl->events, ev) database_event_del(ev);
 
-   eina_stringshare_del(cl->name);
-   eina_stringshare_del(cl->full_name);
-   eina_stringshare_del(cl->description);
-   eina_stringshare_del(cl->legacy_prefix);
-   eina_stringshare_del(cl->eo_prefix);
-   eina_stringshare_del(cl->data_type);
+   if (cl->name) eina_stringshare_del(cl->name);
+   if (cl->full_name) eina_stringshare_del(cl->full_name);
+   if (cl->description) eina_stringshare_del(cl->description);
+   if (cl->legacy_prefix) eina_stringshare_del(cl->legacy_prefix);
+   if (cl->eo_prefix) eina_stringshare_del(cl->eo_prefix);
+   if (cl->data_type) eina_stringshare_del(cl->data_type);
 
-   if (cl->namespaces) EINA_LIST_FREE(cl->namespaces, sp)
-      eina_stringshare_del(sp);
+   if (cl->namespaces) EINA_LIST_FREE(cl->namespaces, s)
+      if (s) eina_stringshare_del(s);
 
    free(cl);
 }
diff --git a/src/lib/eolian/database_fill.c b/src/lib/eolian/database_fill.c
index 8462879..33c6781 100644
--- a/src/lib/eolian/database_fill.c
+++ b/src/lib/eolian/database_fill.c
@@ -184,7 +184,7 @@ _db_build_implement(Eolian_Class *cl, Eolian_Function 
*foo_id)
 }
 
 static Eina_Bool
-_db_fill_implements(Eolian_Class *cl, Eo_Class_Def *kls)
+_db_fill_implements(Eolian_Class *cl, Eolian_Class *kls)
 {
    Eolian_Implement *impl;
    Eolian_Function *foo_id;
@@ -222,7 +222,7 @@ _db_fill_constructor(Eolian_Class *cl, Eolian_Constructor 
*ctor)
 }
 
 static Eina_Bool
-_db_fill_constructors(Eolian_Class *cl, Eo_Class_Def *kls)
+_db_fill_constructors(Eolian_Class *cl, Eolian_Class *kls)
 {
    Eolian_Constructor *ctor;
    Eina_List *l;
@@ -237,7 +237,7 @@ _db_fill_constructors(Eolian_Class *cl, Eo_Class_Def *kls)
 }
 
 static Eina_Bool
-_db_fill_events(Eolian_Class *cl, Eo_Class_Def *kls)
+_db_fill_events(Eolian_Class *cl, Eolian_Class *kls)
 {
    Eolian_Event *event;
    Eina_List *l;
@@ -252,7 +252,7 @@ _db_fill_events(Eolian_Class *cl, Eo_Class_Def *kls)
 }
 
 static Eina_Bool
-_db_fill_class(Eo_Class_Def *kls)
+_db_fill_class(Eolian_Class *kls)
 {
    Eolian_Class *cl = database_class_add(kls->name, kls->type);
    const char *s;
diff --git a/src/lib/eolian/eo_definitions.c b/src/lib/eolian/eo_definitions.c
index 2d0b164..15bbd5b 100644
--- a/src/lib/eolian/eo_definitions.c
+++ b/src/lib/eolian/eo_definitions.c
@@ -4,50 +4,6 @@
 #include "eo_definitions.h"
 
 void
-eo_definitions_class_def_free(Eo_Class_Def *kls)
-{
-   const char *s;
-   Eolian_Function *func;
-   Eolian_Event *sgn;
-   Eolian_Implement *impl;
-   Eolian_Constructor *ctor;
-
-   if (kls->base.file)
-     eina_stringshare_del(kls->base.file);
-
-   if (kls->name)
-     eina_stringshare_del(kls->name);
-   if (kls->description)
-     eina_stringshare_del(kls->description);
-   if (kls->legacy_prefix)
-     eina_stringshare_del(kls->legacy_prefix);
-   if (kls->eo_prefix)
-     eina_stringshare_del(kls->eo_prefix);
-   if (kls->data_type)
-     eina_stringshare_del(kls->data_type);
-
-   EINA_LIST_FREE(kls->inherits, s)
-     if (s) eina_stringshare_del(s);
-
-   EINA_LIST_FREE(kls->implements, impl)
-     database_implement_del(impl);
-
-   EINA_LIST_FREE(kls->constructors, ctor)
-     database_constructor_del(ctor);
-
-   EINA_LIST_FREE(kls->properties, func)
-     database_function_del(func);
-
-   EINA_LIST_FREE(kls->methods, func)
-     database_function_del(func);
-
-   EINA_LIST_FREE(kls->events, sgn)
-     database_event_del(sgn);
-
-   free(kls);
-}
-
-void
 eo_definitions_temps_free(Eo_Lexer_Temps *tmp)
 {
    Eina_Strbuf *buf;
@@ -66,7 +22,7 @@ eo_definitions_temps_free(Eo_Lexer_Temps *tmp)
      eina_stringshare_del(tmp->legacy_def);
 
    if (tmp->kls)
-     eo_definitions_class_def_free(tmp->kls);
+     database_class_del(tmp->kls);
 
    EINA_LIST_FREE(tmp->type_defs, tp)
      database_type_del(tp);
diff --git a/src/lib/eolian/eo_definitions.h b/src/lib/eolian/eo_definitions.h
index 8ea1184..4f20843 100644
--- a/src/lib/eolian/eo_definitions.h
+++ b/src/lib/eolian/eo_definitions.h
@@ -6,25 +6,6 @@
 
 #include "eolian_database.h"
 
-/* CLASS */
-
-typedef struct _Eo_Class_Def
-{
-   Eolian_Object base;
-   Eina_Stringshare *name;
-   Eolian_Class_Type type;
-   Eina_Stringshare *description;
-   Eina_Stringshare *legacy_prefix;
-   Eina_Stringshare *eo_prefix;
-   Eina_Stringshare *data_type;
-   Eina_List *inherits;
-   Eina_List *properties;
-   Eina_List *methods;
-   Eina_List *implements;
-   Eina_List *constructors;
-   Eina_List *events;
-} Eo_Class_Def;
-
 /* TEMPS */
 
 typedef struct _Eo_Lexer_Temps
@@ -32,7 +13,7 @@ typedef struct _Eo_Lexer_Temps
    Eina_List *str_bufs;
    Eina_List *params;
    Eina_Stringshare *legacy_def;
-   Eo_Class_Def *kls;
+   Eolian_Class *kls;
    Eina_List *type_defs;
    Eina_List *var_defs;
    Eolian_Function *func;
@@ -45,7 +26,6 @@ typedef struct _Eo_Lexer_Temps
    Eina_List *strs;
 } Eo_Lexer_Temps;
 
-void eo_definitions_class_def_free(Eo_Class_Def *kls);
 void eo_definitions_temps_free(Eo_Lexer_Temps *tmp);
 
 #endif /* __EO_DEFINITIONS_H__ */
diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c
index 932d1a9..75ce0a4 100644
--- a/src/lib/eolian/eo_lexer.c
+++ b/src/lib/eolian/eo_lexer.c
@@ -718,7 +718,7 @@ eo_lexer_free(Eo_Lexer *ls)
         switch (nd->type)
           {
            case NODE_CLASS:
-             eo_definitions_class_def_free(nd->def_class);
+             database_class_del(nd->def_class);
              break;
            default:
              break;
diff --git a/src/lib/eolian/eo_lexer.h b/src/lib/eolian/eo_lexer.h
index 4784e14..9557270 100644
--- a/src/lib/eolian/eo_lexer.h
+++ b/src/lib/eolian/eo_lexer.h
@@ -91,15 +91,12 @@ enum Nodes
    NODE_CLASS = 0
 };
 
-/* represents a node, aka a result of parsing - currently class, typedef
- * or struct, they're all stored in a list in lexer state and their type
- * is determined by enum Nodes above */
 typedef struct _Eo_Node
 {
    unsigned char type;
    union {
       void         *def;
-      Eo_Class_Def *def_class;
+      Eolian_Class *def_class;
    };
 } Eo_Node;
 
diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index 462cd14..303299d 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -249,6 +249,12 @@ _fill_variable_name(Eolian_Variable *var, const char 
*var_name)
    NAMESPACE_PARSE(var, var_name)
 }
 
+static void
+_fill_class_name(Eolian_Class *cl, const char *cl_name)
+{
+   NAMESPACE_PARSE(cl, cl_name)
+}
+
 #undef NAMESPACE_PARSE
 
 static Eolian_Expression *
@@ -1880,7 +1886,7 @@ parse_class(Eo_Lexer *ls, Eolian_Class_Type type)
    Eina_Bool same;
    int line, col;
    Eina_Strbuf *buf = push_strbuf(ls);
-   ls->tmp.kls = calloc(1, sizeof(Eo_Class_Def));
+   ls->tmp.kls = calloc(1, sizeof(Eolian_Class));
    ls->tmp.kls->base.file = eina_stringshare_ref(ls->filename);
    ls->tmp.kls->base.line = ls->line_number;
    ls->tmp.kls->base.column = ls->column;

-- 


Reply via email to