Browse Source
Merge pull request #6287 from lioncash/ldr-copy
ldr: Simplify memory copy within LoadNro()
pull/15/merge
bunnei
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
3 additions and
5 deletions
-
src/core/hle/service/ldr/ldr.cpp
|
|
|
@ -387,11 +387,9 @@ public: |
|
|
|
const VAddr bss_end_addr{ |
|
|
|
Common::AlignUp(bss_start + nro_header.bss_size, Kernel::PageSize)}; |
|
|
|
|
|
|
|
auto CopyCode{[&](VAddr src_addr, VAddr dst_addr, u64 size) { |
|
|
|
std::vector<u8> source_data(size); |
|
|
|
system.Memory().ReadBlock(src_addr, source_data.data(), source_data.size()); |
|
|
|
system.Memory().WriteBlock(dst_addr, source_data.data(), source_data.size()); |
|
|
|
}}; |
|
|
|
const auto CopyCode = [this, process](VAddr src_addr, VAddr dst_addr, u64 size) { |
|
|
|
system.Memory().CopyBlock(*process, dst_addr, src_addr, size); |
|
|
|
}; |
|
|
|
CopyCode(nro_addr + nro_header.segment_headers[TEXT_INDEX].memory_offset, text_start, |
|
|
|
nro_header.segment_headers[TEXT_INDEX].memory_size); |
|
|
|
CopyCode(nro_addr + nro_header.segment_headers[RO_INDEX].memory_offset, ro_start, |
|
|
|
|