From ab704acab80d17f9a8e34dcbb753d60de2a86f86 Mon Sep 17 00:00:00 2001
From: bunnei <bunneidev@gmail.com>
Date: Fri, 9 Apr 2021 16:56:11 -0700
Subject: hle: kernel: Ensure all kernel objects with KAutoObject are properly
 created.

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

(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 1249a4c965..43bce18635 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -196,6 +196,7 @@ struct KernelCore::Impl {
     void InitializeSuspendThreads() {
         for (s32 core_id = 0; core_id < Core::Hardware::NUM_CPU_CORES; core_id++) {
             suspend_threads[core_id] = std::make_unique<KThread>(system.Kernel());
+            KAutoObject::Create(suspend_threads[core_id].get());
             ASSERT(KThread::InitializeHighPriorityThread(system, suspend_threads[core_id].get(), {},
                                                          {}, core_id)
                        .IsSuccess());
@@ -236,6 +237,7 @@ struct KernelCore::Impl {
     KThread* GetHostDummyThread() {
         auto make_thread = [this]() {
             std::unique_ptr<KThread> thread = std::make_unique<KThread>(system.Kernel());
+            KAutoObject::Create(thread.get());
             ASSERT(KThread::InitializeDummyThread(thread.get()).IsSuccess());
             thread->SetName(fmt::format("DummyThread:{}", GetHostThreadId()));
             return std::move(thread);
@@ -580,6 +582,11 @@ struct KernelCore::Impl {
         irs_shared_mem = std::make_unique<KSharedMemory>(system.Kernel());
         time_shared_mem = std::make_unique<KSharedMemory>(system.Kernel());
 
+        KAutoObject::Create(hid_shared_mem.get());
+        KAutoObject::Create(font_shared_mem.get());
+        KAutoObject::Create(irs_shared_mem.get());
+        KAutoObject::Create(time_shared_mem.get());
+
         hid_shared_mem->Initialize(system.Kernel(), system.DeviceMemory(), nullptr,
                                    {hid_phys_addr, hid_size / PageSize}, KMemoryPermission::None,
                                    KMemoryPermission::Read, hid_phys_addr, hid_size,
-- 
cgit v1.2.3-70-g09d2