aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/k_server_session.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2022-03-10 23:45:54 -0800
committerbunnei <bunneidev@gmail.com>2022-03-14 18:14:53 -0700
commit842119385723c5ea09d9f01c6eb7c871950f2340 (patch)
tree7c9a425ed2c7397e679d24356e36ab54372c7755 /src/core/hle/kernel/k_server_session.cpp
parentcbf7c2eb400b3cbaa4d1dcc85b2eb29d7cd0c12d (diff)
core: hle: kernel: Use weak_ptr where possible for SessionRequestHandler and SessionRequestManager.
Diffstat (limited to 'src/core/hle/kernel/k_server_session.cpp')
-rw-r--r--src/core/hle/kernel/k_server_session.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/core/hle/kernel/k_server_session.cpp b/src/core/hle/kernel/k_server_session.cpp
index 4d94eb9cfd..9cfbcbbc90 100644
--- a/src/core/hle/kernel/k_server_session.cpp
+++ b/src/core/hle/kernel/k_server_session.cpp
@@ -98,7 +98,12 @@ ResultCode KServerSession::HandleDomainSyncRequest(Kernel::HLERequestContext& co
UNREACHABLE();
return ResultSuccess; // Ignore error if asserts are off
}
- return manager->DomainHandler(object_id - 1)->HandleSyncRequest(*this, context);
+ if (auto strong_ptr = manager->DomainHandler(object_id - 1).lock()) {
+ return strong_ptr->HandleSyncRequest(*this, context);
+ } else {
+ UNREACHABLE();
+ return ResultSuccess;
+ }
case IPC::DomainMessageHeader::CommandType::CloseVirtualHandle: {
LOG_DEBUG(IPC, "CloseVirtualHandle, object_id=0x{:08X}", object_id);