diff options
| author | Mai <mathew1800@gmail.com> | 2022-11-09 03:25:53 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-09 03:25:53 +0000 |
| commit | ad9e5bc5b7374d87d0b4f47ad7b1a6def78132c8 (patch) | |
| tree | 58c88d7ca923789c9a5d5518d2af1e413887f451 /src/core/hle/kernel/hle_ipc.cpp | |
| parent | dc520a487d17ac377b26ee531d48f5ed64c42851 (diff) | |
| parent | 6a0d8b2aa154921e8328dfab9450510ad8e1b5c8 (diff) | |
Merge pull request #9199 from liamwhite/service-oops
service_thread: fix deletion
Diffstat (limited to 'src/core/hle/kernel/hle_ipc.cpp')
| -rw-r--r-- | src/core/hle/kernel/hle_ipc.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/core/hle/kernel/hle_ipc.cpp b/src/core/hle/kernel/hle_ipc.cpp index fd354d484..06010b8d1 100644 --- a/src/core/hle/kernel/hle_ipc.cpp +++ b/src/core/hle/kernel/hle_ipc.cpp @@ -27,16 +27,12 @@ namespace Kernel { SessionRequestHandler::SessionRequestHandler(KernelCore& kernel_, const char* service_name_, ServiceThreadType thread_type) - : kernel{kernel_} { - if (thread_type == ServiceThreadType::CreateNew) { - service_thread = kernel.CreateServiceThread(service_name_); - } else { - service_thread = kernel.GetDefaultServiceThread(); - } -} + : kernel{kernel_}, service_thread{thread_type == ServiceThreadType::CreateNew + ? kernel.CreateServiceThread(service_name_) + : kernel.GetDefaultServiceThread()} {} SessionRequestHandler::~SessionRequestHandler() { - kernel.ReleaseServiceThread(service_thread.lock()); + kernel.ReleaseServiceThread(service_thread); } void SessionRequestHandler::AcceptSession(KServerPort* server_port) { @@ -49,7 +45,7 @@ void SessionRequestHandler::AcceptSession(KServerPort* server_port) { void SessionRequestHandler::RegisterSession(KServerSession* server_session, std::shared_ptr<SessionRequestManager> manager) { manager->SetSessionHandler(shared_from_this()); - service_thread.lock()->RegisterServerSession(server_session, manager); + service_thread.RegisterServerSession(server_session, manager); server_session->Close(); } |
