From 05aa4aa01a0f9b9e3a5a0ea47b0d5719befce9b4 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Thu, 20 Sep 2018 21:09:57 -0400 Subject: kernel/thread: Use owner_process when setting the page table in SetupMainThread() The owning process of a thread is required to exist before the thread, so we can enforce this API-wise by using a reference. We can also avoid the reliance on the system instance by using that parameter to access the page table that needs to be set. --- src/core/hle/kernel/thread.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/core/hle/kernel/thread.cpp') diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp index d4183d6e3..c2d7535c9 100644 --- a/src/core/hle/kernel/thread.cpp +++ b/src/core/hle/kernel/thread.cpp @@ -311,13 +311,13 @@ void Thread::BoostPriority(u32 priority) { } SharedPtr SetupMainThread(KernelCore& kernel, VAddr entry_point, u32 priority, - SharedPtr owner_process) { + Process& owner_process) { // Setup page table so we can write to memory - SetCurrentPageTable(&Core::CurrentProcess()->vm_manager.page_table); + SetCurrentPageTable(&owner_process.vm_manager.page_table); // Initialize new "main" thread auto thread_res = Thread::Create(kernel, "main", entry_point, priority, 0, THREADPROCESSORID_0, - Memory::STACK_AREA_VADDR_END, std::move(owner_process)); + Memory::STACK_AREA_VADDR_END, &owner_process); SharedPtr thread = std::move(thread_res).Unwrap(); -- cgit v1.2.3