diff options
| author | Lioncash <mathew1800@gmail.com> | 2019-07-24 07:40:02 -0400 | 
|---|---|---|
| committer | Lioncash <mathew1800@gmail.com> | 2019-09-04 19:58:52 -0400 | 
| commit | b0da7e4262c128ba2355a4b07806bd19aa67701f (patch) | |
| tree | 3a6ca993f14cd76ec484f37c05a97542c7606280 /src/core/hle | |
| parent | 96cc9a92794309d83f03a34d34a6f2f24a68ac3e (diff) | |
kernel/vm_manager: Move variables closer to usage spots in MapPhysicalMemory/UnmapPhysicalMemory
Narrows the scope of variables down to where they're only necessary.
Diffstat (limited to 'src/core/hle')
| -rw-r--r-- | src/core/hle/kernel/vm_manager.cpp | 26 | 
1 files changed, 10 insertions, 16 deletions
| diff --git a/src/core/hle/kernel/vm_manager.cpp b/src/core/hle/kernel/vm_manager.cpp index 6ec4159ca..c7af87073 100644 --- a/src/core/hle/kernel/vm_manager.cpp +++ b/src/core/hle/kernel/vm_manager.cpp @@ -296,12 +296,6 @@ ResultVal<VAddr> VMManager::SetHeapSize(u64 size) {  }  ResultCode VMManager::MapPhysicalMemory(VAddr target, u64 size) { -    const auto end_addr = target + size; -    const auto last_addr = end_addr - 1; -    VAddr cur_addr = target; - -    ResultCode result = RESULT_SUCCESS; -      // Check how much memory we've already mapped.      const auto mapped_size_result = SizeOfAllocatedVMAsInRange(target, size);      if (mapped_size_result.Failed()) { @@ -324,10 +318,13 @@ ResultCode VMManager::MapPhysicalMemory(VAddr target, u64 size) {      // Keep track of the memory regions we unmap.      std::vector<std::pair<u64, u64>> mapped_regions; +    ResultCode result = RESULT_SUCCESS;      // Iterate, trying to map memory.      { -        cur_addr = target; +        const auto end_addr = target + size; +        const auto last_addr = end_addr - 1; +        VAddr cur_addr = target;          auto iter = FindVMA(target);          ASSERT(iter != vma_map.end()); @@ -381,12 +378,6 @@ ResultCode VMManager::MapPhysicalMemory(VAddr target, u64 size) {  }  ResultCode VMManager::UnmapPhysicalMemory(VAddr target, u64 size) { -    const auto end_addr = target + size; -    const auto last_addr = end_addr - 1; -    VAddr cur_addr = target; - -    ResultCode result = RESULT_SUCCESS; -      // Check how much memory is currently mapped.      const auto mapped_size_result = SizeOfUnmappablePhysicalMemoryInRange(target, size);      if (mapped_size_result.Failed()) { @@ -401,10 +392,13 @@ ResultCode VMManager::UnmapPhysicalMemory(VAddr target, u64 size) {      // Keep track of the memory regions we unmap.      std::vector<std::pair<u64, u64>> unmapped_regions; +    ResultCode result = RESULT_SUCCESS;      // Try to unmap regions.      { -        cur_addr = target; +        const auto end_addr = target + size; +        const auto last_addr = end_addr - 1; +        VAddr cur_addr = target;          auto iter = FindVMA(target);          ASSERT(iter != vma_map.end()); @@ -443,8 +437,8 @@ ResultCode VMManager::UnmapPhysicalMemory(VAddr target, u64 size) {      if (result.IsError()) {          for (const auto [map_address, map_size] : unmapped_regions) {              const auto remap_res = -                MapMemoryBlock(map_address, std::make_shared<PhysicalMemory>(map_size), 0, -                               map_size, MemoryState::Heap, VMAPermission::None); +                MapMemoryBlock(map_address, std::make_shared<PhysicalMemory>(map_size), 0, map_size, +                               MemoryState::Heap, VMAPermission::None);              ASSERT_MSG(remap_res.Succeeded(), "Failed to remap a memory block.");          } | 
