static Eolian_Class *
_parse_dep(Eo_Lexer *ls, const char *fname, const char *name)
{
- if (eina_hash_find(_parsingeos, fname))
+ if (eina_hash_find(ls->state->parsing, fname))
return NULL;
Eolian_Class *cl = NULL;
if (!eo_parser_database_fill(ls->state, fname, EINA_FALSE, &cl) || !cl)
Eina_Bool
eo_parser_database_fill(Eolian *state, const char *filename, Eina_Bool eot, Eolian_Class **fcl)
{
- Eolian_Class *cl = eina_hash_find(_parsedeos, filename);
+ Eolian_Class *cl = eina_hash_find(state->parsed, filename);
if (cl)
{
if (!eot && fcl) *fcl = cl;
return EINA_TRUE;
}
- eina_hash_set(_parsingeos, filename, (void *)EINA_TRUE);
+ eina_hash_set(state->parsing, filename, (void *)EINA_TRUE);
Eo_Lexer *ls = eo_lexer_new(state, filename);
if (!ls)
if (fcl) *fcl = cl;
done:
- eina_hash_set(_parsedeos, filename, eot ? (void *)EINA_TRUE : cl);
- eina_hash_set(_parsingeos, filename, (void *)EINA_FALSE);
+ eina_hash_set(state->parsed, filename, eot ? (void *)EINA_TRUE : cl);
+ eina_hash_set(state->parsing, filename, (void *)EINA_FALSE);
eo_lexer_free(ls);
return EINA_TRUE;
error:
- eina_hash_set(_parsingeos, filename, (void *)EINA_FALSE);
+ eina_hash_set(state->parsing, filename, (void *)EINA_FALSE);
eo_lexer_free(ls);
return EINA_FALSE;
}
Eina_Hash *_declsf = NULL;
Eina_Hash *_units = NULL;
-Eina_Hash *_parsedeos = NULL;
-Eina_Hash *_parsingeos = NULL;
-
Eina_Hash *_defereos = NULL;
static Eolian_Unit *_cunit = NULL;
eina_init();
_decls = eina_hash_stringshared_new(free);
_declsf = eina_hash_stringshared_new(_hashlist_free);
- _parsedeos = eina_hash_string_small_new(NULL);
- _parsingeos = eina_hash_string_small_new(NULL);
_defereos = eina_hash_string_small_new(NULL);
_units = eina_hash_stringshared_new(EINA_FREE_CB(database_unit_del));
return ++_database_init_count;
{
eina_hash_free(_decls ); _decls = NULL;
eina_hash_free(_declsf ); _declsf = NULL;
- eina_hash_free(_parsedeos ); _parsedeos = NULL;
- eina_hash_free(_parsingeos); _parsingeos = NULL;
eina_hash_free(_defereos ); _defereos = NULL;
eina_hash_free(_units ); _units = NULL;
eina_shutdown();
state->filenames_eo = eina_hash_string_small_new(free);
state->filenames_eot = eina_hash_string_small_new(free);
+ state->parsed = eina_hash_string_small_new(NULL);
+ state->parsing = eina_hash_string_small_new(NULL);
+
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);
extern Eina_Hash *_units;
-/* holds parsed/currently parsing eot files to keep track */
-extern Eina_Hash *_parsedeos;
-extern Eina_Hash *_parsingeos;
-
/* for deferred dependency parsing */
extern Eina_Hash *_defereos;
Eina_Hash *filenames_eo; /* filename to full path mapping */
Eina_Hash *filenames_eot;
+ Eina_Hash *parsing;
+ Eina_Hash *parsed;
+
Eina_Hash *classes_f;
Eina_Hash *aliases_f;
Eina_Hash *structs_f;