summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/svc.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2019-03-28 17:56:49 -0400
committerGravatar GitHub2019-03-28 17:56:49 -0400
commit16dc3a1dd5b3a8a70de833aa1da98fc6ed8bacce (patch)
treecfe1d18ac3392175d32306b5f73d3a764fb68e9b /src/core/hle/kernel/svc.cpp
parentMerge pull request #2296 from lioncash/override (diff)
parentkernel/vm_manager: Handle shrinking of the heap size within SetHeapSize() (diff)
downloadyuzu-16dc3a1dd5b3a8a70de833aa1da98fc6ed8bacce.tar.gz
yuzu-16dc3a1dd5b3a8a70de833aa1da98fc6ed8bacce.tar.xz
yuzu-16dc3a1dd5b3a8a70de833aa1da98fc6ed8bacce.zip
Merge pull request #2284 from lioncash/heap-alloc
kernel/vm_manager: Unify heap allocation/freeing functions
Diffstat (limited to 'src/core/hle/kernel/svc.cpp')
-rw-r--r--src/core/hle/kernel/svc.cpp9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index e5e7f99e1..09d1eadb6 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -175,11 +175,8 @@ static ResultCode SetHeapSize(VAddr* heap_addr, u64 heap_size) {
175 return ERR_INVALID_SIZE; 175 return ERR_INVALID_SIZE;
176 } 176 }
177 177
178 auto& vm_manager = Core::CurrentProcess()->VMManager(); 178 auto& vm_manager = Core::System::GetInstance().Kernel().CurrentProcess()->VMManager();
179 const VAddr heap_base = vm_manager.GetHeapRegionBaseAddress(); 179 const auto alloc_result = vm_manager.SetHeapSize(heap_size);
180 const auto alloc_result =
181 vm_manager.HeapAllocate(heap_base, heap_size, VMAPermission::ReadWrite);
182
183 if (alloc_result.Failed()) { 180 if (alloc_result.Failed()) {
184 return alloc_result.Code(); 181 return alloc_result.Code();
185 } 182 }
@@ -809,7 +806,7 @@ static ResultCode GetInfo(u64* result, u64 info_id, u64 handle, u64 info_sub_id)
809 return RESULT_SUCCESS; 806 return RESULT_SUCCESS;
810 807
811 case GetInfoType::TotalHeapUsage: 808 case GetInfoType::TotalHeapUsage:
812 *result = process->VMManager().GetTotalHeapUsage(); 809 *result = process->VMManager().GetCurrentHeapSize();
813 return RESULT_SUCCESS; 810 return RESULT_SUCCESS;
814 811
815 case GetInfoType::IsVirtualAddressMemoryEnabled: 812 case GetInfoType::IsVirtualAddressMemoryEnabled: