q66 pushed a commit to branch master.

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

commit d85a3f601578c6b4d4b6831fe0218da47876acf1
Author: Daniel Kolesa <[email protected]>
Date:   Thu Sep 11 10:58:09 2014 +0100

    eolian: cleanup class fill
---
 src/lib/eolian/database_class.c  | 28 ----------------------------
 src/lib/eolian/database_fill.c   |  8 +++++++-
 src/lib/eolian/eo_parser.c       |  3 ++-
 src/lib/eolian/eolian_database.h |  4 ----
 4 files changed, 9 insertions(+), 34 deletions(-)

diff --git a/src/lib/eolian/database_class.c b/src/lib/eolian/database_class.c
index 01833ac..b7d2a0a 100644
--- a/src/lib/eolian/database_class.c
+++ b/src/lib/eolian/database_class.c
@@ -37,31 +37,3 @@ database_class_del(Eolian_Class *cl)
 
    free(cl);
 }
-
-Eolian_Class *
-database_class_add(const char *class_name, Eolian_Class_Type type)
-{
-   char *full_name = strdup(class_name);
-   char *name = full_name;
-   char *colon = full_name;
-   Eolian_Class *cl = calloc(1, sizeof(*cl));
-   cl->full_name = eina_stringshare_add(class_name);
-   cl->type = type;
-   do
-     {
-        colon = strchr(colon, '.');
-        if (colon)
-          {
-             *colon = '\0';
-             cl->namespaces = eina_list_append(cl->namespaces,
-                                               eina_stringshare_add(name));
-             colon += 1;
-             name = colon;
-          }
-     }
-   while(colon);
-   cl->name = eina_stringshare_add(name);
-   eina_hash_set(_classes, cl->full_name, cl);
-   free(full_name);
-   return cl;
-}
diff --git a/src/lib/eolian/database_fill.c b/src/lib/eolian/database_fill.c
index 33c6781..6f27154 100644
--- a/src/lib/eolian/database_fill.c
+++ b/src/lib/eolian/database_fill.c
@@ -254,12 +254,18 @@ _db_fill_events(Eolian_Class *cl, Eolian_Class *kls)
 static Eina_Bool
 _db_fill_class(Eolian_Class *kls)
 {
-   Eolian_Class *cl = database_class_add(kls->name, kls->type);
+   Eolian_Class *cl = calloc(1, sizeof(Eolian_Class));
    const char *s;
    Eina_List *l;
 
+   eina_hash_set(_classes, kls->full_name, cl);
    eina_hash_set(_classesf, kls->base.file, cl);
 
+   cl->namespaces = kls->namespaces; kls->namespaces = NULL;
+   cl->full_name = kls->full_name; kls->full_name = NULL;
+   cl->name = kls->name; kls->name = NULL;
+   cl->type = kls->type;
+
    if (kls->description)
      cl->description = eina_stringshare_ref(kls->description);
 
diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index 303299d..2e567f1 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -1905,7 +1905,8 @@ parse_class(Eo_Lexer *ls, Eolian_Class_Type type)
         eo_lexer_syntax_error(ls, "class and file names differ");
      }
    eo_lexer_context_pop(ls);
-   ls->tmp.kls->name = eina_stringshare_add(eina_strbuf_string_get(buf));
+   _fill_class_name(ls->tmp.kls, eina_stringshare_add(eina_strbuf_string_get
+      (buf)));
    pop_strbuf(ls);
    if (ls->t.token != '{')
      {
diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h
index ab656cc..844c716 100644
--- a/src/lib/eolian/eolian_database.h
+++ b/src/lib/eolian/eolian_database.h
@@ -272,8 +272,6 @@ void database_var_del(Eolian_Variable *var);
 Eina_Bool database_var_add(Eolian_Variable *var);
 
 /* classes */
-
-Eolian_Class *database_class_add(const char *class_name, Eolian_Class_Type 
type);
 void database_class_del(Eolian_Class *cl);
 
 /* functions */
@@ -283,11 +281,9 @@ void database_function_del(Eolian_Function *fid);
 void database_parameter_del(Eolian_Function_Parameter *pdesc);
 
 /* implements */
-
 void database_implement_del(Eolian_Implement *impl);
 
 /* constructors */
-
 void database_constructor_del(Eolian_Constructor *ctor);
 
 /* events */

-- 


Reply via email to