From 3ebd1f150629e3f68d83a4a2d8ef33e3124db540 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Thu, 7 Dec 2017 19:03:00 +0100 Subject: eolian: store units in state --- src/lib/eolian/eo_lexer.c | 2 +- src/lib/eolian/eolian_database.c | 7 ++++--- src/lib/eolian/eolian_database.h | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c index e646eaad98..1aa02ae777 100644 --- a/src/lib/eolian/eo_lexer.c +++ b/src/lib/eolian/eo_lexer.c @@ -1047,7 +1047,7 @@ eo_lexer_set_input(Eo_Lexer *ls, Eolian *state, const char *source) Eolian_Unit *ncunit = calloc(1, sizeof(Eolian_Unit)); database_unit_init(state, ncunit, ls->filename); - eina_hash_add(_units, ls->filename, ncunit); + eina_hash_add(state->units, ls->filename, ncunit); } static void diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index 9161be0328..ff24ba3dd3 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -10,7 +10,6 @@ Eina_Hash *_decls = NULL; Eina_Hash *_declsf = NULL; -Eina_Hash *_units = NULL; static Eolian_Unit *_cunit = NULL; @@ -29,7 +28,6 @@ database_init() eina_init(); _decls = eina_hash_stringshared_new(free); _declsf = eina_hash_stringshared_new(_hashlist_free); - _units = eina_hash_stringshared_new(EINA_FREE_CB(database_unit_del)); return ++_database_init_count; } @@ -47,7 +45,6 @@ database_shutdown() { eina_hash_free(_decls ); _decls = NULL; eina_hash_free(_declsf ); _declsf = NULL; - eina_hash_free(_units ); _units = NULL; eina_shutdown(); } return _database_init_count; @@ -601,6 +598,8 @@ eolian_new(void) state->parsing = eina_hash_string_small_new(NULL); state->defer = eina_hash_string_small_new(NULL); + state->units = eina_hash_stringshared_new(EINA_FREE_CB(database_unit_del)); + 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); @@ -626,6 +625,8 @@ eolian_free(Eolian *state) eina_hash_free(state->parsing); eina_hash_free(state->defer); + eina_hash_free(state->units); + eina_hash_free(state->classes_f); eina_hash_free(state->aliases_f); eina_hash_free(state->structs_f); diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h index 5168df904f..56fabc099e 100644 --- a/src/lib/eolian/eolian_database.h +++ b/src/lib/eolian/eolian_database.h @@ -35,8 +35,6 @@ extern Eina_Prefix *_eolian_prefix; extern Eina_Hash *_decls; extern Eina_Hash *_declsf; -extern Eina_Hash *_units; - struct _Eolian_Unit { Eolian *state; @@ -61,6 +59,8 @@ struct _Eolian Eina_Hash *parsed; Eina_Hash *defer; + Eina_Hash *units; + Eina_Hash *classes_f; Eina_Hash *aliases_f; Eina_Hash *structs_f; -- cgit v1.2.1