From d261984f5460ca700c372299df64d47f32e199b9 Mon Sep 17 00:00:00 2001
From: Subv <subv2112@gmail.com>
Date: Tue, 19 Apr 2016 15:56:11 -0500
Subject: [PATCH] Kernel: Account for automatically-allocated shared memories
 in the amount of used linear heap memory.

---
 src/core/hle/kernel/shared_memory.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/core/hle/kernel/shared_memory.cpp b/src/core/hle/kernel/shared_memory.cpp
index 2b6007caa3..74947f023a 100644
--- a/src/core/hle/kernel/shared_memory.cpp
+++ b/src/core/hle/kernel/shared_memory.cpp
@@ -41,6 +41,11 @@ SharedPtr<SharedMemory> SharedMemory::Create(SharedPtr<Process> owner_process, u
 
         shared_memory->linear_heap_phys_address = Memory::FCRAM_PADDR + memory_region->base + shared_memory->backing_block_offset;
 
+        // Increase the amount of used linear heap memory for the owner process.
+        if (shared_memory->owner_process != nullptr) {
+            shared_memory->owner_process->linear_heap_used += size;
+        }
+
         // Refresh the address mappings for the current process.
         if (Kernel::g_current_process != nullptr) {
             Kernel::g_current_process->vm_manager.RefreshMemoryBlockMappings(linheap_memory.get());