eolian: only merge units on success when parsing all files
authorDaniel Kolesa <d.kolesa@osg.samsung.com>
Mon, 12 Mar 2018 10:36:50 +0000 (11:36 +0100)
committerWonki Kim <wonki_.kim@samsung.com>
Tue, 10 Apr 2018 11:10:53 +0000 (20:10 +0900)
src/lib/eolian/eolian_database.c

index 6fc47ba..d99c849 100644 (file)
@@ -817,7 +817,7 @@ static Eina_Bool _tfile_parse(const Eina_Hash *hash EINA_UNUSED, const void *key
      unit = eo_parser_database_fill((Eolian_Unit *)pd->state, data, EINA_TRUE);
    pd->ret = !!unit;
    if (pd->ret) pd->ret = _parse_deferred(unit);
-   _merge_units(unit);
+   if (pd->ret) _merge_units(unit);
    return pd->ret;
 }
 
@@ -846,7 +846,7 @@ static Eina_Bool _file_parse(const Eina_Hash *hash EINA_UNUSED, const void *key
      unit = eo_parser_database_fill((Eolian_Unit *)pd->state, data, EINA_FALSE);
    pd->ret = !!unit;
    if (pd->ret) pd->ret = _parse_deferred(unit);
-   _merge_units(unit);
+   if (pd->ret) _merge_units(unit);
    return pd->ret;
 }