Implement jit_compiler::check

Instead of checking file existence (because file may be damaged).
This commit is contained in:
Nekotekina 2020-04-07 16:09:47 +03:00
parent 7939160178
commit 91d80aa7b9
3 changed files with 17 additions and 1 deletions

View File

@ -1200,6 +1200,19 @@ void jit_compiler::add(const std::string& path)
}
}
bool jit_compiler::check(const std::string& path)
{
if (auto cache = ObjectCache::load(path))
{
if (auto object_file = llvm::object::ObjectFile::createObjectFile(*cache))
{
return true;
}
}
return false;
}
void jit_compiler::fin()
{
m_engine->finalizeObject();

View File

@ -171,6 +171,9 @@ public:
// Add object (path to obj file)
void add(const std::string& path);
// Check object file
static bool check(const std::string& path);
// Finalize
void fin();

View File

@ -1650,7 +1650,7 @@ extern void ppu_initialize(const ppu_module& info)
link_workload.emplace_back(obj_name, false);
// Check object file
if (fs::is_file(cache_path + obj_name + ".gz") || fs::is_file(cache_path + obj_name))
if (jit_compiler::check(cache_path + obj_name))
{
if (!jit)
{