diff options
author | Lioncash <mathew1800@gmail.com> | 2019-03-22 13:18:48 -0400 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2019-03-22 14:39:17 -0400 |
commit | 611f4666fd32c7b55830d24d0c4eb68afe12414a (patch) | |
tree | 5a272198faf8e1f43424379f1cda726f16e886d3 /src | |
parent | 1cf90f45704373cd61d274d1e3c4dc6e5be87eaa (diff) |
loader/nso: Clean up use of magic constants
Now that the NSO header has the proper size, we can just use sizeof on
it instead of having magic constants.
Diffstat (limited to 'src')
-rw-r--r-- | src/core/loader/nso.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/core/loader/nso.cpp b/src/core/loader/nso.cpp index 262eaeaee..fc71ad189 100644 --- a/src/core/loader/nso.cpp +++ b/src/core/loader/nso.cpp @@ -138,13 +138,15 @@ std::optional<VAddr> AppLoader_NSO::LoadModule(Kernel::Process& process, // Apply patches if necessary if (pm && (pm->HasNSOPatch(nso_header.build_id) || Settings::values.dump_nso)) { - std::vector<u8> pi_header(program_image.size() + 0x100); - std::memcpy(pi_header.data(), &nso_header, sizeof(NSOHeader)); - std::memcpy(pi_header.data() + 0x100, program_image.data(), program_image.size()); + std::vector<u8> pi_header(sizeof(NSOHeader) + program_image.size()); + pi_header.insert(pi_header.begin(), reinterpret_cast<u8*>(&nso_header), + reinterpret_cast<u8*>(&nso_header) + sizeof(NSOHeader)); + pi_header.insert(pi_header.begin() + sizeof(NSOHeader), program_image.begin(), + program_image.end()); pi_header = pm->PatchNSO(pi_header); - std::memcpy(program_image.data(), pi_header.data() + 0x100, program_image.size()); + std::copy(pi_header.begin() + sizeof(NSOHeader), pi_header.end(), program_image.begin()); } // Apply cheats if they exist and the program has a valid title ID |