diff options
| author | Zach Hilman <zachhilman@gmail.com> | 2018-10-02 17:03:34 -0400 |
|---|---|---|
| committer | Zach Hilman <zachhilman@gmail.com> | 2018-10-02 17:03:38 -0400 |
| commit | 215b65fe75810b72bb76ae8dbb75ea59ac16f13f (patch) | |
| tree | da57983b31917f55694d17e5fec0bab8dc0877fc /src/core/loader/deconstructed_rom_directory.cpp | |
| parent | 6d441828e6eab50fea7041af8cfa5299fc78b7eb (diff) | |
nso: Optimize loading of IPS patches
Avoid resource-heavy classes and remove quasi-duplicated code.
Diffstat (limited to 'src/core/loader/deconstructed_rom_directory.cpp')
| -rw-r--r-- | src/core/loader/deconstructed_rom_directory.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/core/loader/deconstructed_rom_directory.cpp b/src/core/loader/deconstructed_rom_directory.cpp index 338f6b01b..9a86e5824 100644 --- a/src/core/loader/deconstructed_rom_directory.cpp +++ b/src/core/loader/deconstructed_rom_directory.cpp @@ -130,6 +130,7 @@ ResultStatus AppLoader_DeconstructedRomDirectory::Load(Kernel::Process& process) } process.LoadFromMetadata(metadata); + const FileSys::PatchManager pm(metadata.GetTitleID()); // Load NSO modules const VAddr base_address = process.VMManager().GetCodeRegionBaseAddress(); @@ -139,9 +140,7 @@ ResultStatus AppLoader_DeconstructedRomDirectory::Load(Kernel::Process& process) const FileSys::VirtualFile module_file = dir->GetFile(module); if (module_file != nullptr) { const VAddr load_addr = next_load_addr; - next_load_addr = AppLoader_NSO::LoadModule( - module_file, load_addr, - std::make_shared<FileSys::PatchManager>(metadata.GetTitleID())); + next_load_addr = AppLoader_NSO::LoadModule(module_file, load_addr, pm); LOG_DEBUG(Loader, "loaded module {} @ 0x{:X}", module, load_addr); // Register module with GDBStub GDBStub::RegisterModule(module, load_addr, next_load_addr - 1, false); |
