summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/hle/kernel/vm_manager.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/core/hle/kernel/vm_manager.cpp b/src/core/hle/kernel/vm_manager.cpp
index 721f7cc44..6b2d78cc8 100644
--- a/src/core/hle/kernel/vm_manager.cpp
+++ b/src/core/hle/kernel/vm_manager.cpp
@@ -765,11 +765,14 @@ void VMManager::MergeAdjacentVMA(VirtualMemoryArea& left, const VirtualMemoryAre
765 // Fast case: left is an entire backing block. 765 // Fast case: left is an entire backing block.
766 left.backing_block->insert(left.backing_block->end(), right_begin, right_end); 766 left.backing_block->insert(left.backing_block->end(), right_begin, right_end);
767 } else { 767 } else {
768 // Slow case: make a new memory block for left and right.
768 const auto left_begin = left.backing_block->begin() + left.offset; 769 const auto left_begin = left.backing_block->begin() + left.offset;
769 const auto left_end = left_begin + left.size; 770 const auto left_end = left_begin + left.size;
771 const auto left_size = static_cast<std::size_t>(std::distance(left_begin, left_end));
772 const auto right_size = static_cast<std::size_t>(std::distance(right_begin, right_end));
770 773
771 // Slow case: make a new memory block for left and right.
772 auto new_memory = std::make_shared<PhysicalMemory>(); 774 auto new_memory = std::make_shared<PhysicalMemory>();
775 new_memory->reserve(left_size + right_size);
773 new_memory->insert(new_memory->end(), left_begin, left_end); 776 new_memory->insert(new_memory->end(), left_begin, left_end);
774 new_memory->insert(new_memory->end(), right_begin, right_end); 777 new_memory->insert(new_memory->end(), right_begin, right_end);
775 778