From 64da2bf0cddd885968fd62b65610aff640166a92 Mon Sep 17 00:00:00 2001 From: Subv Date: Sat, 14 May 2016 11:24:19 -0500 Subject: Memory: Fixed a regression caused by #1695 and #1689. Reserve enough space in the vector that holds the linear heap memory to prevent relocations of the backing memory when growing too much. Closes #1790 --- src/core/hle/kernel/memory.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/core/hle/kernel/memory.cpp b/src/core/hle/kernel/memory.cpp index 4be20db22..17ae87aef 100644 --- a/src/core/hle/kernel/memory.cpp +++ b/src/core/hle/kernel/memory.cpp @@ -55,6 +55,9 @@ void MemoryInit(u32 mem_type) { memory_regions[i].size = memory_region_sizes[mem_type][i]; memory_regions[i].used = 0; memory_regions[i].linear_heap_memory = std::make_shared>(); + // Reserve enough space for this region of FCRAM. + // We do not want this block of memory to be relocated when allocating from it. + memory_regions[i].linear_heap_memory->reserve(memory_regions[i].size); base += memory_regions[i].size; } -- cgit v1.2.3