aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Kolesa <d.kolesa@osg.samsung.com>2018-03-22 14:55:31 +0100
committerDaniel Kolesa <d.kolesa@osg.samsung.com>2018-03-22 15:37:25 +0100
commitbc182e69d7f74861307cf494eb0e166af8e7847e (patch)
tree02f6503bd6fb2da3e2dc233570d725e700264b4d
parentefl: replace efl_del with efl_unref for cases where no parent exists (diff)
downloadefl-bc182e69d7f74861307cf494eb0e166af8e7847e.tar.gz
eolian: flush defer table before parsing
-rw-r--r--src/lib/eolian/eolian_database.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c
index 7bb0f4b420..52049fc405 100644
--- a/src/lib/eolian/eolian_database.c
+++ b/src/lib/eolian/eolian_database.c
@@ -776,7 +776,7 @@ static Eina_Bool
_parse_deferred(Eolian_Unit *parent)
{
Eina_Hash *defer = parent->state->defer;
- if (!defer || !eina_hash_population(defer))
+ if (!eina_hash_population(defer))
return EINA_TRUE;
/* clean room for more deps for later parsing */
parent->state->defer = eina_hash_string_small_new(NULL);
@@ -859,6 +859,7 @@ eolian_state_file_parse(Eolian_State *state, const char *filepath)
if (!state)
return NULL;
+ eina_hash_free_buckets(state->defer);
Eolian_Unit *ret = _eolian_file_parse_nodep((Eolian_Unit *)state, filepath);
if (!ret)
return NULL;
@@ -896,6 +897,7 @@ eolian_state_all_eot_files_parse(Eolian_State *state)
if (!state)
return EINA_FALSE;
+ eina_hash_free_buckets(state->defer);
eina_hash_foreach(state->filenames_eot, _tfile_parse, &pd);
if (pd.ret && !database_validate(&state->unit))
@@ -924,6 +926,7 @@ eolian_state_all_eo_files_parse(Eolian_State *state)
if (!state)
return EINA_FALSE;
+ eina_hash_free_buckets(state->defer);
eina_hash_foreach(state->filenames_eo, _file_parse, &pd);
if (pd.ret && !database_validate(&state->unit))