aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/k_thread.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2021-02-27 11:56:04 -0800
committerbunnei <bunneidev@gmail.com>2021-02-27 11:56:04 -0800
commit3322f10f84e5e6c57a5d88707566e85227b0e624 (patch)
tree89cd2ad6dfb310587aa546bb7b9847762795f08f /src/core/hle/kernel/k_thread.cpp
parentcfe967f1ac788132926c1b11d251892d78f8229b (diff)
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.
Diffstat (limited to 'src/core/hle/kernel/k_thread.cpp')
-rw-r--r--src/core/hle/kernel/k_thread.cpp6
1 files changed, 1 insertions, 5 deletions
diff --git a/src/core/hle/kernel/k_thread.cpp b/src/core/hle/kernel/k_thread.cpp
index 1661afbd97..f49e31b72d 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<Common::Fiber>& KThread::GetHostContext() {
- return host_context;
-}
-
ResultVal<std::shared_ptr<KThread>> 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<std::shared_ptr<KThread>> KThread::Create(Core::System& system, Thread
scheduler.AddThread(thread);
thread->host_context =
- std::make_shared<Common::Fiber>(std::move(thread_start_func), thread_start_parameter);
+ std::make_unique<Common::Fiber>(std::move(thread_start_func), thread_start_parameter);
return MakeResult<std::shared_ptr<KThread>>(std::move(thread));
}