summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/process.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/kernel/process.cpp')
-rw-r--r--src/core/hle/kernel/process.cpp4
1 files changed, 3 insertions, 1 deletions
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<VAddr> Process::HeapAllocate(VAddr target, u64 size, VMAPermission per
183 // Initialize heap 183 // Initialize heap
184 heap_memory = std::make_shared<std::vector<u8>>(); 184 heap_memory = std::make_shared<std::vector<u8>>();
185 heap_start = heap_end = target; 185 heap_start = heap_end = target;
186 } else {
187 vm_manager.UnmapRange(heap_start, heap_end - heap_start);
186 } 188 }
187 189
188 // If necessary, expand backing vector to cover new heap extents. 190 // If necessary, expand backing vector to cover new heap extents.
@@ -202,7 +204,7 @@ ResultVal<VAddr> Process::HeapAllocate(VAddr target, u64 size, VMAPermission per
202 size, MemoryState::Heap)); 204 size, MemoryState::Heap));
203 vm_manager.Reprotect(vma, perms); 205 vm_manager.Reprotect(vma, perms);
204 206
205 heap_used += size; 207 heap_used = size;
206 memory_region->used += size; 208 memory_region->used += size;
207 209
208 return MakeResult<VAddr>(heap_end - size); 210 return MakeResult<VAddr>(heap_end - size);