fname = eina_stringshare_add(filename);
Eolian_Unit *ret = eina_hash_find(parent->state->units, fname);
- eina_stringshare_del(fname);
if (ret)
{
- if ((parent != ret) && !eina_hash_find(parent->children, filename))
- eina_hash_add(parent->children, filename, ret);
+ if ((parent != ret) && !eina_hash_find(parent->children, fname))
+ eina_hash_add(parent->children, fname, ret);
+ eina_stringshare_del(fname);
return ret;
}
done:
ret = ls->unit;
- eina_hash_add(parent->children, filename, ret);
+ eina_hash_add(parent->children, fname, ret);
+ eina_stringshare_del(fname);
eo_lexer_free(ls);
return ret;
error:
+ eina_stringshare_del(fname);
eo_lexer_free(ls);
return NULL;
}
if (!_parse_deferred(ret))
return NULL;
_merge_units(ret);
- /* FIXME: pass unit properly */
- if (!database_validate(state, &state->unit))
+ if (!database_validate(state, ret))
return NULL;
return &state->unit;
}
eina_hash_foreach(state->filenames_eot, _tfile_parse, &pd);
- /* FIXME: pass unit properly */
if (pd.ret && !database_validate(state, &state->unit))
return EINA_FALSE;
eina_hash_foreach(state->filenames_eo, _file_parse, &pd);
- /* FIXME: pass unit properly */
if (pd.ret && !database_validate(state, &state->unit))
return EINA_FALSE;