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 | e8791f39ae5d14793db420f4d05c333d07732cb6 (patch) | |
| tree | 5a272198faf8e1f43424379f1cda726f16e886d3 /src/core/loader/nso.cpp | |
| parent | be2b64e8bced829355c1c03d1258b7053989db6c (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/core/loader/nso.cpp')
| -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 262eaeaeef..fc71ad1899 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 |
