From 51fb0a6f9647ba199da10fe4f018ee36e44e65ba Mon Sep 17 00:00:00 2001 From: bunnei Date: Sat, 27 Feb 2021 11:56:04 -0800 Subject: core: Switch to unique_ptr for usage of Common::Fiber. - With using unique_ptr instead of shared_ptr, we have more explicit ownership of the context. - Fixes a memory leak due to circular reference of the shared pointer. --- src/core/hle/kernel/k_thread.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'src/core/hle/kernel/k_thread.cpp') diff --git a/src/core/hle/kernel/k_thread.cpp b/src/core/hle/kernel/k_thread.cpp index 1661afbd9..f49e31b72 100644 --- a/src/core/hle/kernel/k_thread.cpp +++ b/src/core/hle/kernel/k_thread.cpp @@ -991,10 +991,6 @@ void KThread::SetState(ThreadState state) { } } -std::shared_ptr& KThread::GetHostContext() { - return host_context; -} - ResultVal> KThread::Create(Core::System& system, ThreadType type_flags, std::string name, VAddr entry_point, u32 priority, u64 arg, s32 processor_id, @@ -1028,7 +1024,7 @@ ResultVal> KThread::Create(Core::System& system, Thread scheduler.AddThread(thread); thread->host_context = - std::make_shared(std::move(thread_start_func), thread_start_parameter); + std::make_unique(std::move(thread_start_func), thread_start_parameter); return MakeResult>(std::move(thread)); } -- cgit v1.2.3