diff --git a/src/bin/eolian/main.c b/src/bin/eolian/main.c index 7084ff38bc..20c53bc401 100644 --- a/src/bin/eolian/main.c +++ b/src/bin/eolian/main.c @@ -495,12 +495,6 @@ main(int argc, char **argv) goto end; } - if (!eolian_database_validate()) - { - fprintf(stderr, "eolian: failed validating database\n"); - goto end; - } - _fill_all_outs(outs, input); const char *eobn = _get_filename(input); diff --git a/src/bin/eolian_cxx/eolian_cxx.cc b/src/bin/eolian_cxx/eolian_cxx.cc index ee1b39909c..c98412aedd 100644 --- a/src/bin/eolian_cxx/eolian_cxx.cc +++ b/src/bin/eolian_cxx/eolian_cxx.cc @@ -313,12 +313,6 @@ database_load(options_type const& opts) << "Failed parsing: " << opts.in_files[0] << "."; assert(false && "Error parsing input file"); } - if (!::eolian_database_validate()) - { - EINA_CXX_DOM_LOG_ERR(eolian_cxx::domain) - << "Eolian failed validating database."; - assert(false && "Error validating database"); - } } } // namespace eolian_cxx { diff --git a/src/bindings/luajit/eolian.lua b/src/bindings/luajit/eolian.lua index d86e8e8396..34bcb4382c 100644 --- a/src/bindings/luajit/eolian.lua +++ b/src/bindings/luajit/eolian.lua @@ -237,7 +237,6 @@ ffi.cdef [[ Eina_Bool eolian_system_directory_scan(); Eina_Bool eolian_all_eo_files_parse(); Eina_Bool eolian_all_eot_files_parse(); - Eina_Bool eolian_database_validate(); const Eolian_Class *eolian_class_get_by_name(const Eolian_Unit *unit, const char *class_name); const Eolian_Class *eolian_class_get_by_file(const Eolian_Unit *unit, const char *file_name); const char *eolian_class_file_get(const Eolian_Class *klass); @@ -492,10 +491,6 @@ M.all_eot_files_get = function() return iterator.String_Iterator(eolian.eolian_all_eot_files_get()) end -M.database_validate = function() - return eolian.eolian_database_validate() ~= 0 -end - M.declaration_type = { UNKNOWN = 0, CLASS = 0, diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index 2bface281f..554f84c71d 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -512,17 +512,6 @@ EAPI Eina_Bool eolian_all_eo_files_parse(void); */ EAPI Eina_Bool eolian_all_eot_files_parse(void); -/* - * @brief Validates the database, printing errors and warnings. - * - * @return EINA_TRUE on success, EINA_FALSE otherwise. - * - * Useful to catch type errors etc. early on. - * - * @ingroup Eolian - */ -EAPI Eina_Bool eolian_database_validate(); - /* * @brief Gets a class by its name * @@ -2444,7 +2433,7 @@ EAPI char *eolian_doc_token_text_get(const Eolian_Doc_Token *tok); * @brief Get the thing that a reference token references. * * Returns EOLIAN_DOC_REF_INVALID on failure (when not ref token or - * invalid ref, but invalid refs don't happen when database is validated). + * invalid ref, but invalid refs don't happen when database is valid). * * When the reference is a class, alias, struct, enum or var, the first data arg * is filled. When it's a func, the first data is class and second data is diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index f71691176d..4ba4b69f7d 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -723,6 +723,8 @@ eolian_file_parse(const char *filepath) return NULL; if (!_parse_deferred()) return NULL; + if (!database_validate()) + return NULL; return &unit_tmp; } @@ -743,6 +745,10 @@ eolian_all_eot_files_parse() return EINA_FALSE; eina_hash_foreach(_tfilenames, _tfile_parse, &ret); + + if (ret && !database_validate()) + return EINA_FALSE; + return ret; } @@ -763,16 +769,11 @@ eolian_all_eo_files_parse() return EINA_FALSE; eina_hash_foreach(_filenames, _file_parse, &ret); - return ret; -} -EAPI Eina_Bool -eolian_database_validate() -{ - if (_database_init_count <= 0) + if (ret && !database_validate()) return EINA_FALSE; - return database_validate(); + return ret; } EAPI Eina_Iterator * diff --git a/src/scripts/elua/modules/lualian.lua b/src/scripts/elua/modules/lualian.lua index a88e3d0d9a..1253252069 100644 --- a/src/scripts/elua/modules/lualian.lua +++ b/src/scripts/elua/modules/lualian.lua @@ -703,9 +703,6 @@ M.generate = function(fname, fstream) error("Failed parsing file: " .. fname) end gen_unit = unit - if not eolian.database_validate() then - error("Failed validating database.") - end local sfn = fname:match(".*[\\/](.+)$") or fname local klass = eolian.class_get_by_file(unit, sfn) File(fname, klass, { gen_class(klass) }):generate(fstream or io.stdout)