From 39a8dba9a67385b2e246dbf96b22adcb8fc53c03 Mon Sep 17 00:00:00 2001
From: bunnei <bunneidev@gmail.com>
Date: Fri, 23 Apr 2021 17:00:46 -0700
Subject: hle: kernel: Cleanup shutdown of persistent kernel objects.

---
 src/core/hle/kernel/kernel.cpp | 26 ++++++++++++--------------
 1 file changed, 12 insertions(+), 14 deletions(-)

(limited to 'src/core/hle/kernel/kernel.cpp')

diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index c939bb9030..b2eb51bde9 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -129,20 +129,18 @@ struct KernelCore::Impl {
 
         exclusive_monitor.reset();
 
-        hid_shared_mem->Close();
-        hid_shared_mem = nullptr;
-
-        font_shared_mem->Close();
-        font_shared_mem = nullptr;
-
-        irs_shared_mem->Close();
-        irs_shared_mem = nullptr;
-
-        time_shared_mem->Close();
-        time_shared_mem = nullptr;
-
-        system_resource_limit->Close();
-        system_resource_limit = nullptr;
+        // Cleanup persistent kernel objects
+        auto CleanupObject = [](KAutoObject* obj) {
+            if (obj) {
+                obj->Close();
+                obj = nullptr;
+            }
+        };
+        CleanupObject(hid_shared_mem);
+        CleanupObject(font_shared_mem);
+        CleanupObject(irs_shared_mem);
+        CleanupObject(time_shared_mem);
+        CleanupObject(system_resource_limit);
 
         // Next host thead ID to use, 0-3 IDs represent core threads, >3 represent others
         next_host_thread_id = Core::Hardware::NUM_CPU_CORES;
-- 
cgit v1.2.3-70-g09d2