From e9a857ce82e85c3933f6ce3140ba366e932db386 Mon Sep 17 00:00:00 2001 From: bunnei Date: Fri, 16 Mar 2018 18:24:29 -0400 Subject: process: Unmap previously allocated heap. --- src/core/hle/kernel/process.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/core/hle/kernel/process.cpp b/src/core/hle/kernel/process.cpp index 5711b5247..c1a883b3c 100644 --- a/src/core/hle/kernel/process.cpp +++ b/src/core/hle/kernel/process.cpp @@ -183,6 +183,8 @@ ResultVal Process::HeapAllocate(VAddr target, u64 size, VMAPermission per // Initialize heap heap_memory = std::make_shared>(); heap_start = heap_end = target; + } else { + vm_manager.UnmapRange(heap_start, heap_end - heap_start); } // If necessary, expand backing vector to cover new heap extents. @@ -202,7 +204,7 @@ ResultVal Process::HeapAllocate(VAddr target, u64 size, VMAPermission per size, MemoryState::Heap)); vm_manager.Reprotect(vma, perms); - heap_used += size; + heap_used = size; memory_region->used += size; return MakeResult(heap_end - size); -- cgit v1.2.3