summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar bunnei2021-05-07 09:46:31 -0700
committerGravatar GitHub2021-05-07 09:46:31 -0700
commit8acf739b3fac78d25dc60e1a7d1252c05afadd57 (patch)
tree9315d25e19c41422467bef9d4a3e5fb5dd3fbb87
parentMerge pull request #6279 from ogniK5377/nvhost-prof (diff)
parentldr: Simplify memory copy within LoadNro() (diff)
downloadyuzu-8acf739b3fac78d25dc60e1a7d1252c05afadd57.tar.gz
yuzu-8acf739b3fac78d25dc60e1a7d1252c05afadd57.tar.xz
yuzu-8acf739b3fac78d25dc60e1a7d1252c05afadd57.zip
Merge pull request #6287 from lioncash/ldr-copy
ldr: Simplify memory copy within LoadNro()
-rw-r--r--src/core/hle/service/ldr/ldr.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/core/hle/service/ldr/ldr.cpp b/src/core/hle/service/ldr/ldr.cpp
index c8bc60ad1..89f6f6a2a 100644
--- a/src/core/hle/service/ldr/ldr.cpp
+++ b/src/core/hle/service/ldr/ldr.cpp
@@ -387,11 +387,9 @@ public:
387 const VAddr bss_end_addr{ 387 const VAddr bss_end_addr{
388 Common::AlignUp(bss_start + nro_header.bss_size, Kernel::PageSize)}; 388 Common::AlignUp(bss_start + nro_header.bss_size, Kernel::PageSize)};
389 389
390 auto CopyCode{[&](VAddr src_addr, VAddr dst_addr, u64 size) { 390 const auto CopyCode = [this, process](VAddr src_addr, VAddr dst_addr, u64 size) {
391 std::vector<u8> source_data(size); 391 system.Memory().CopyBlock(*process, dst_addr, src_addr, size);
392 system.Memory().ReadBlock(src_addr, source_data.data(), source_data.size()); 392 };
393 system.Memory().WriteBlock(dst_addr, source_data.data(), source_data.size());
394 }};
395 CopyCode(nro_addr + nro_header.segment_headers[TEXT_INDEX].memory_offset, text_start, 393 CopyCode(nro_addr + nro_header.segment_headers[TEXT_INDEX].memory_offset, text_start,
396 nro_header.segment_headers[TEXT_INDEX].memory_size); 394 nro_header.segment_headers[TEXT_INDEX].memory_size);
397 CopyCode(nro_addr + nro_header.segment_headers[RO_INDEX].memory_offset, ro_start, 395 CopyCode(nro_addr + nro_header.segment_headers[RO_INDEX].memory_offset, ro_start,