summaryrefslogtreecommitdiff
path: root/src/lib/eolian/eolian_database.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/eolian/eolian_database.c')
-rw-r--r--src/lib/eolian/eolian_database.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c
index 75b92eb816..9bd7c612e0 100644
--- a/src/lib/eolian/eolian_database.c
+++ b/src/lib/eolian/eolian_database.c
@@ -1299,16 +1299,19 @@ EAPI Eina_Bool eolian_eo_file_parse(const char *filepath)
}
EINA_LIST_FOREACH(eolian_class_inherits_list_get(class_name), itr, inherit_name)
{
- char *filename = strdup(inherit_name);
- eina_str_tolower(&filename);
- filepath = eina_hash_find(_filenames, filename);
- if (!filepath)
+ if (!eolian_class_exists(inherit_name))
{
- ERR("Unable to find class %s", inherit_name);
- return EINA_FALSE;
+ char *filename = strdup(inherit_name);
+ eina_str_tolower(&filename);
+ filepath = eina_hash_find(_filenames, filename);
+ if (!filepath)
+ {
+ ERR("Unable to find class %s", inherit_name);
+ return EINA_FALSE;
+ }
+ if (!eolian_eo_file_parse(filepath)) return EINA_FALSE;
+ free(filename);
}
- if (!eolian_eo_file_parse(filepath)) return EINA_FALSE;
- free(filename);
}
EINA_LIST_FOREACH(eolian_class_implements_list_get(class_name), itr, impl)
{