aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/k_process.cpp
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2024-01-07 13:59:48 -0500
committerLiam <byteslice@airmail.cc>2024-01-12 18:31:33 -0500
commit12fe8c5b76d34269e45bef13124dfa2e77316b4c (patch)
tree4051a2e4e1c34370fa259ecf36783b76ea66a56f /src/core/hle/kernel/k_process.cpp
parent7a556e94e4353e7731e4c6cedc438a638cbc0e51 (diff)
kernel: fix page leak on process termination
Diffstat (limited to 'src/core/hle/kernel/k_process.cpp')
-rw-r--r--src/core/hle/kernel/k_process.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/hle/kernel/k_process.cpp b/src/core/hle/kernel/k_process.cpp
index 068e71dffd..ae332a5506 100644
--- a/src/core/hle/kernel/k_process.cpp
+++ b/src/core/hle/kernel/k_process.cpp
@@ -171,6 +171,12 @@ void KProcess::Finalize() {
m_resource_limit->Close();
}
+ // Clear expensive resources, as the destructor is not called for guest objects.
+ for (auto& interface : m_arm_interfaces) {
+ interface.reset();
+ }
+ m_exclusive_monitor.reset();
+
// Perform inherited finalization.
KSynchronizationObject::Finalize();
}