summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/process.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/kernel/process.cpp')
-rw-r--r--src/core/hle/kernel/process.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/core/hle/kernel/process.cpp b/src/core/hle/kernel/process.cpp
index b0b7af76b..a5144b8ad 100644
--- a/src/core/hle/kernel/process.cpp
+++ b/src/core/hle/kernel/process.cpp
@@ -218,11 +218,13 @@ void Process::FreeTLSSlot(VAddr tls_address) {
218} 218}
219 219
220void Process::LoadModule(CodeSet module_, VAddr base_addr) { 220void Process::LoadModule(CodeSet module_, VAddr base_addr) {
221 const auto memory = std::make_shared<std::vector<u8>>(std::move(module_.memory));
222
221 const auto MapSegment = [&](const CodeSet::Segment& segment, VMAPermission permissions, 223 const auto MapSegment = [&](const CodeSet::Segment& segment, VMAPermission permissions,
222 MemoryState memory_state) { 224 MemoryState memory_state) {
223 const auto vma = vm_manager 225 const auto vma = vm_manager
224 .MapMemoryBlock(segment.addr + base_addr, module_.memory, 226 .MapMemoryBlock(segment.addr + base_addr, memory, segment.offset,
225 segment.offset, segment.size, memory_state) 227 segment.size, memory_state)
226 .Unwrap(); 228 .Unwrap();
227 vm_manager.Reprotect(vma, permissions); 229 vm_manager.Reprotect(vma, permissions);
228 }; 230 };