diff options
Diffstat (limited to 'src/core/loader')
| -rw-r--r-- | src/core/loader/deconstructed_rom_directory.cpp | 7 | ||||
| -rw-r--r-- | src/core/loader/nca.cpp | 3 | ||||
| -rw-r--r-- | src/core/loader/nro.cpp | 3 | ||||
| -rw-r--r-- | src/core/loader/nso.cpp | 23 |
4 files changed, 12 insertions, 24 deletions
diff --git a/src/core/loader/deconstructed_rom_directory.cpp b/src/core/loader/deconstructed_rom_directory.cpp index 19b8667ba..394963a69 100644 --- a/src/core/loader/deconstructed_rom_directory.cpp +++ b/src/core/loader/deconstructed_rom_directory.cpp @@ -83,16 +83,13 @@ ResultStatus AppLoader_DeconstructedRomDirectory::Load( VAddr next_load_addr{Memory::PROCESS_IMAGE_VADDR}; for (const auto& module : {"rtld", "main", "subsdk0", "subsdk1", "subsdk2", "subsdk3", "subsdk4", "subsdk5", "subsdk6", "subsdk7", "sdk"}) { - const VAddr load_addr = next_load_addr; const FileSys::VirtualFile module_file = dir->GetFile(module); - if (module_file != nullptr) + if (module_file != nullptr) { + const VAddr load_addr = next_load_addr; next_load_addr = AppLoader_NSO::LoadModule(module_file, load_addr); - if (next_load_addr) { LOG_DEBUG(Loader, "loaded module {} @ 0x{:X}", module, load_addr); // Register module with GDBStub GDBStub::RegisterModule(module, load_addr, next_load_addr - 1, false); - } else { - next_load_addr = load_addr; } } diff --git a/src/core/loader/nca.cpp b/src/core/loader/nca.cpp index e73b253b2..c80df23be 100644 --- a/src/core/loader/nca.cpp +++ b/src/core/loader/nca.cpp @@ -2,6 +2,7 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. +#include <utility> #include <vector> #include "common/file_util.h" @@ -21,7 +22,7 @@ namespace Loader { -AppLoader_NCA::AppLoader_NCA(FileSys::VirtualFile file) : AppLoader(file) {} +AppLoader_NCA::AppLoader_NCA(FileSys::VirtualFile file) : AppLoader(std::move(file)) {} FileType AppLoader_NCA::IdentifyType(const FileSys::VirtualFile& file) { // TODO(DarkLordZach): Assuming everything is decrypted. Add crypto support. diff --git a/src/core/loader/nro.cpp b/src/core/loader/nro.cpp index 465b827bb..c020399f2 100644 --- a/src/core/loader/nro.cpp +++ b/src/core/loader/nro.cpp @@ -2,6 +2,7 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. +#include <utility> #include <vector> #include "common/common_funcs.h" @@ -48,7 +49,7 @@ struct ModHeader { }; static_assert(sizeof(ModHeader) == 0x1c, "ModHeader has incorrect size."); -AppLoader_NRO::AppLoader_NRO(FileSys::VirtualFile file) : AppLoader(file) {} +AppLoader_NRO::AppLoader_NRO(FileSys::VirtualFile file) : AppLoader(std::move(file)) {} FileType AppLoader_NRO::IdentifyType(const FileSys::VirtualFile& file) { // Read NSO header diff --git a/src/core/loader/nso.cpp b/src/core/loader/nso.cpp index c66561bf4..06b1b33f4 100644 --- a/src/core/loader/nso.cpp +++ b/src/core/loader/nso.cpp @@ -69,29 +69,18 @@ FileType AppLoader_NSO::IdentifyType(const FileSys::VirtualFile& file) { static std::vector<u8> DecompressSegment(const std::vector<u8>& compressed_data, const NsoSegmentHeader& header) { std::vector<u8> uncompressed_data(header.size); - const int bytes_uncompressed = LZ4_decompress_safe( - reinterpret_cast<const char*>(compressed_data.data()), - reinterpret_cast<char*>(uncompressed_data.data()), compressed_data.size(), header.size); + const int bytes_uncompressed = + LZ4_decompress_safe(reinterpret_cast<const char*>(compressed_data.data()), + reinterpret_cast<char*>(uncompressed_data.data()), + static_cast<int>(compressed_data.size()), header.size); - ASSERT_MSG(bytes_uncompressed == header.size && bytes_uncompressed == uncompressed_data.size(), + ASSERT_MSG(bytes_uncompressed == static_cast<int>(header.size) && + bytes_uncompressed == static_cast<int>(uncompressed_data.size()), "{} != {} != {}", bytes_uncompressed, header.size, uncompressed_data.size()); return uncompressed_data; } -static std::vector<u8> ReadSegment(FileUtil::IOFile& file, const NsoSegmentHeader& header, - size_t compressed_size) { - std::vector<u8> compressed_data(compressed_size); - - file.Seek(header.offset, SEEK_SET); - if (compressed_size != file.ReadBytes(compressed_data.data(), compressed_size)) { - LOG_CRITICAL(Loader, "Failed to read {} NSO LZ4 compressed bytes", compressed_size); - return {}; - } - - return DecompressSegment(compressed_data, header); -} - static constexpr u32 PageAlignSize(u32 size) { return (size + Memory::PAGE_MASK) & ~Memory::PAGE_MASK; } |
