Fix library loading mode 'both'

This commit is contained in:
Nekotekina 2017-09-20 12:56:01 +03:00
parent 5c93acefd9
commit b9a0c107ab
2 changed files with 14 additions and 3 deletions

View File

@ -1178,9 +1178,9 @@ void ppu_load_exec(const ppu_exec_object& elf)
// Get LLE module list
std::set<std::string> load_libs;
if (g_cfg.core.lib_loading == lib_loading_type::manual || g_cfg.core.lib_loading == lib_loading_type::both)
if (g_cfg.core.lib_loading == lib_loading_type::manual)
{
// Load required set of modules
// Load required set of modules (lib_loading_type::both processed in sys_prx.cpp)
load_libs = g_cfg.core.load_libraries.get_set();
}
else if (g_cfg.core.lib_loading == lib_loading_type::liblv2only)

View File

@ -107,7 +107,18 @@ error_code prx_load_module(const std::string& vpath, u64 flags, vm::ptr<sys_prx_
return CELL_PRX_ERROR_LIBRARY_FOUND;
}
if (s_prx_ignore.count(vpath))
bool ignore = s_prx_ignore.count(vpath) != 0;
if (ignore && g_cfg.core.lib_loading == lib_loading_type::both)
{
// Ignore ignore list if the library is selected in 'both' mode
if (g_cfg.core.load_libraries.get_set().count(name) != 0)
{
ignore = false;
}
}
if (ignore)
{
sys_prx.warning("Ignored module: %s", vpath);