diff options
| author | 2019-04-01 22:20:05 -0400 | |
|---|---|---|
| committer | 2019-04-01 22:20:05 -0400 | |
| commit | 29df6bbbd368a8265a401e8d529453352b43d5e1 (patch) | |
| tree | 36ed85250c33cea2623765e7bc6c3f1708932b2e /src/core/hle/kernel | |
| parent | Merge pull request #2301 from FearlessTobi/remove-amiibo-setting (diff) | |
| parent | kernel/codeset: Make CodeSet's memory data member a regular std::vector (diff) | |
| download | yuzu-29df6bbbd368a8265a401e8d529453352b43d5e1.tar.gz yuzu-29df6bbbd368a8265a401e8d529453352b43d5e1.tar.xz yuzu-29df6bbbd368a8265a401e8d529453352b43d5e1.zip | |
Merge pull request #2281 from lioncash/memory
kernel/codeset: Make CodeSet's memory data member a regular std::vector
Diffstat (limited to 'src/core/hle/kernel')
| -rw-r--r-- | src/core/hle/kernel/code_set.h | 3 | ||||
| -rw-r--r-- | src/core/hle/kernel/process.cpp | 6 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/core/hle/kernel/code_set.h b/src/core/hle/kernel/code_set.h index 834fd23d2..879957dcb 100644 --- a/src/core/hle/kernel/code_set.h +++ b/src/core/hle/kernel/code_set.h | |||
| @@ -5,7 +5,6 @@ | |||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | #include <cstddef> | 7 | #include <cstddef> |
| 8 | #include <memory> | ||
| 9 | #include <vector> | 8 | #include <vector> |
| 10 | 9 | ||
| 11 | #include "common/common_types.h" | 10 | #include "common/common_types.h" |
| @@ -78,7 +77,7 @@ struct CodeSet final { | |||
| 78 | } | 77 | } |
| 79 | 78 | ||
| 80 | /// The overall data that backs this code set. | 79 | /// The overall data that backs this code set. |
| 81 | std::shared_ptr<std::vector<u8>> memory; | 80 | std::vector<u8> memory; |
| 82 | 81 | ||
| 83 | /// The segments that comprise this code set. | 82 | /// The segments that comprise this code set. |
| 84 | std::array<Segment, 3> segments; | 83 | std::array<Segment, 3> segments; |
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 | ||
| 220 | void Process::LoadModule(CodeSet module_, VAddr base_addr) { | 220 | void 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 | }; |