1
1
Fork 0
forked from suyu/suyu

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.
This commit is contained in:
Lioncash 2019-03-22 13:18:48 -04:00
parent 1cf90f4570
commit 611f4666fd

View file

@ -138,13 +138,15 @@ std::optional<VAddr> AppLoader_NSO::LoadModule(Kernel::Process& process,
// Apply patches if necessary // Apply patches if necessary
if (pm && (pm->HasNSOPatch(nso_header.build_id) || Settings::values.dump_nso)) { if (pm && (pm->HasNSOPatch(nso_header.build_id) || Settings::values.dump_nso)) {
std::vector<u8> pi_header(program_image.size() + 0x100); std::vector<u8> pi_header(sizeof(NSOHeader) + program_image.size());
std::memcpy(pi_header.data(), &nso_header, sizeof(NSOHeader)); pi_header.insert(pi_header.begin(), reinterpret_cast<u8*>(&nso_header),
std::memcpy(pi_header.data() + 0x100, program_image.data(), program_image.size()); 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); 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 // Apply cheats if they exist and the program has a valid title ID