q66 pushed a commit to branch master.

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

commit 7491f9353f7e34aa0ae903b28ed09467b0652d75
Author: Daniel Kolesa <[email protected]>
Date:   Wed Dec 6 14:11:42 2017 +0100

    eolian: move enums to temporary state
---
 src/lib/eolian/database_type.c     |  6 +++---
 src/lib/eolian/database_type_api.c | 10 +++++-----
 src/lib/eolian/database_validate.c |  2 +-
 src/lib/eolian/eolian_database.c   |  7 +------
 src/lib/eolian/eolian_database.h   |  3 +--
 5 files changed, 11 insertions(+), 17 deletions(-)

diff --git a/src/lib/eolian/database_type.c b/src/lib/eolian/database_type.c
index 7055a510ef..347a6ba0b9 100644
--- a/src/lib/eolian/database_type.c
+++ b/src/lib/eolian/database_type.c
@@ -62,9 +62,9 @@ database_struct_add(Eolian_Typedecl *tp)
 void
 database_enum_add(Eolian_Typedecl *tp)
 {
-   eina_hash_set(_enums, tp->full_name, tp);
-   eina_hash_set(_enumsf, tp->base.file, eina_list_append
-                ((Eina_List*)eina_hash_find(_enumsf, tp->base.file), tp));
+   eina_hash_set(_state->unit.enums, tp->full_name, tp);
+   eina_hash_set(_state->enums_f, tp->base.file, eina_list_append
+                ((Eina_List*)eina_hash_find(_state->enums_f, tp->base.file), 
tp));
    database_decl_add(tp->full_name, EOLIAN_DECL_ENUM, tp->base.file, tp);
 }
 
diff --git a/src/lib/eolian/database_type_api.c 
b/src/lib/eolian/database_type_api.c
index 6704b6b724..20ba88a609 100644
--- a/src/lib/eolian/database_type_api.c
+++ b/src/lib/eolian/database_type_api.c
@@ -34,9 +34,9 @@ EAPI const Eolian_Typedecl *
 eolian_typedecl_enum_get_by_name(const Eolian_Unit *unit EINA_UNUSED,
                                  const char *name)
 {
-   if (!_enums) return NULL;
+   if (!_state) return NULL;
    Eina_Stringshare *shr = eina_stringshare_add(name);
-   Eolian_Typedecl *tp = eina_hash_find(_enums, shr);
+   Eolian_Typedecl *tp = eina_hash_find(_state->unit.enums, shr);
    eina_stringshare_del(shr);
    if (!tp) return NULL;
    return tp;
@@ -70,9 +70,9 @@ EAPI Eina_Iterator *
 eolian_typedecl_enums_get_by_file(const Eolian_Unit *unit EINA_UNUSED,
                                   const char *fname)
 {
-   if (!_enumsf) return NULL;
+   if (!_state) return NULL;
    Eina_Stringshare *shr = eina_stringshare_add(fname);
-   Eina_List *l = eina_hash_find(_enumsf, shr);
+   Eina_List *l = eina_hash_find(_state->enums_f, shr);
    eina_stringshare_del(shr);
    if (!l) return NULL;
    return eina_list_iterator_new(l);
@@ -93,7 +93,7 @@ eolian_typedecl_all_structs_get(const Eolian_Unit *unit 
EINA_UNUSED)
 EAPI Eina_Iterator *
 eolian_typedecl_all_enums_get(const Eolian_Unit *unit EINA_UNUSED)
 {
-   return (_enums ? eina_hash_iterator_data_new(_enums) : NULL);
+   return (_state ? eina_hash_iterator_data_new(_state->unit.enums) : NULL);
 }
 
 EAPI Eolian_Type_Type
diff --git a/src/lib/eolian/database_validate.c 
b/src/lib/eolian/database_validate.c
index 40e4a2804c..b11790950c 100644
--- a/src/lib/eolian/database_validate.c
+++ b/src/lib/eolian/database_validate.c
@@ -536,7 +536,7 @@ database_validate(const Eolian_Unit *src)
    if (!rt.succ)
      return EINA_FALSE;
 
-   eina_hash_foreach(_enums, (Eina_Hash_Foreach)_typedecl_map_cb, &rt);
+   eina_hash_foreach(_state->unit.enums, (Eina_Hash_Foreach)_typedecl_map_cb, 
&rt);
    if (!rt.succ)
      return EINA_FALSE;
 
diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c
index 17b2a54260..e364ca6416 100644
--- a/src/lib/eolian/eolian_database.c
+++ b/src/lib/eolian/eolian_database.c
@@ -8,10 +8,8 @@
 #include "eolian_database.h"
 #include "eolian_priv.h"
 
-Eina_Hash *_enums      = NULL;
 Eina_Hash *_globals    = NULL;
 Eina_Hash *_constants  = NULL;
-Eina_Hash *_enumsf     = NULL;
 Eina_Hash *_globalsf   = NULL;
 Eina_Hash *_constantsf = NULL;
 Eina_Hash *_filenames  = NULL;
@@ -42,10 +40,8 @@ database_init()
 {
    if (_database_init_count > 0) return ++_database_init_count;
    eina_init();
-   _enums      = 
eina_hash_stringshared_new(EINA_FREE_CB(database_typedecl_del));
    _globals    = eina_hash_stringshared_new(EINA_FREE_CB(database_var_del));
    _constants  = eina_hash_stringshared_new(EINA_FREE_CB(database_var_del));
-   _enumsf     = eina_hash_stringshared_new(_hashlist_free);
    _globalsf   = eina_hash_stringshared_new(_hashlist_free);
    _constantsf = eina_hash_stringshared_new(_hashlist_free);
    _filenames  = eina_hash_string_small_new(free);
@@ -73,10 +69,8 @@ database_shutdown()
    if (_database_init_count == 0)
      {
         eolian_free(_state); _state = NULL;
-        eina_hash_free(_enums     ); _enums      = NULL;
         eina_hash_free(_globals   ); _globals    = NULL;
         eina_hash_free(_constants ); _constants  = NULL;
-        eina_hash_free(_enumsf    ); _enumsf     = NULL;
         eina_hash_free(_globalsf  ); _globalsf   = NULL;
         eina_hash_free(_constantsf); _constantsf = NULL;
         eina_hash_free(_filenames ); _filenames  = NULL;
@@ -634,6 +628,7 @@ eolian_new(void)
    state->classes_f = eina_hash_stringshared_new(NULL);
    state->aliases_f = eina_hash_stringshared_new(_hashlist_free);
    state->structs_f = eina_hash_stringshared_new(_hashlist_free);
+   state->enums_f = eina_hash_stringshared_new(_hashlist_free);
 
    return state;
 }
diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h
index f616a5c4f4..dc20ab5d0b 100644
--- a/src/lib/eolian/eolian_database.h
+++ b/src/lib/eolian/eolian_database.h
@@ -31,10 +31,8 @@ extern Eina_Prefix *_eolian_prefix;
 #endif
 #define DBG(...) EINA_LOG_DOM_DBG(_eolian_log_dom, __VA_ARGS__)
 
-extern Eina_Hash *_enums;
 extern Eina_Hash *_globals;
 extern Eina_Hash *_constants;
-extern Eina_Hash *_enumsf;
 extern Eina_Hash *_globalsf;
 extern Eina_Hash *_constantsf;
 extern Eina_Hash *_filenames; /* Hash: filename without extension -> full path 
*/
@@ -75,6 +73,7 @@ struct _Eolian
    Eina_Hash *classes_f;
    Eina_Hash *aliases_f;
    Eina_Hash *structs_f;
+   Eina_Hash *enums_f;
 };
 
 typedef struct _Eolian_Object

-- 


Reply via email to