From 07c9d9bdbdbf632624ca01ea83dbfa51176415ae Mon Sep 17 00:00:00 2001 From: bunnei Date: Thu, 10 Mar 2022 23:45:54 -0800 Subject: core: hle: kernel: Use weak_ptr where possible for SessionRequestHandler and SessionRequestManager. --- src/core/hle/kernel/hle_ipc.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/core/hle/kernel/hle_ipc.h') diff --git a/src/core/hle/kernel/hle_ipc.h b/src/core/hle/kernel/hle_ipc.h index 754b41ff6..670cc741c 100644 --- a/src/core/hle/kernel/hle_ipc.h +++ b/src/core/hle/kernel/hle_ipc.h @@ -94,6 +94,7 @@ protected: std::weak_ptr service_thread; }; +using SessionRequestHandlerWeakPtr = std::weak_ptr; using SessionRequestHandlerPtr = std::shared_ptr; /** @@ -139,7 +140,7 @@ public: } } - SessionRequestHandlerPtr DomainHandler(std::size_t index) const { + SessionRequestHandlerWeakPtr DomainHandler(std::size_t index) const { ASSERT_MSG(index < DomainHandlerCount(), "Unexpected handler index {}", index); return domain_handlers.at(index); } @@ -328,10 +329,10 @@ public: template std::shared_ptr GetDomainHandler(std::size_t index) const { - return std::static_pointer_cast(manager->DomainHandler(index)); + return std::static_pointer_cast(manager.lock()->DomainHandler(index).lock()); } - void SetSessionRequestManager(std::shared_ptr manager_) { + void SetSessionRequestManager(std::weak_ptr manager_) { manager = std::move(manager_); } @@ -374,7 +375,7 @@ private: u32 handles_offset{}; u32 domain_offset{}; - std::shared_ptr manager; + std::weak_ptr manager; KernelCore& kernel; Core::Memory::Memory& memory; -- cgit v1.2.3