diff options
author | bunnei <bunneidev@gmail.com> | 2022-03-11 08:45:54 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2022-03-15 02:14:53 +0100 |
commit | 07c9d9bdbdbf632624ca01ea83dbfa51176415ae (patch) | |
tree | 7c9a425ed2c7397e679d24356e36ab54372c7755 /src/core/hle/kernel/hle_ipc.h | |
parent | core: hle: kernel: k_memory_layout: Update kernel slab memory sizes. (diff) | |
download | yuzu-07c9d9bdbdbf632624ca01ea83dbfa51176415ae.tar yuzu-07c9d9bdbdbf632624ca01ea83dbfa51176415ae.tar.gz yuzu-07c9d9bdbdbf632624ca01ea83dbfa51176415ae.tar.bz2 yuzu-07c9d9bdbdbf632624ca01ea83dbfa51176415ae.tar.lz yuzu-07c9d9bdbdbf632624ca01ea83dbfa51176415ae.tar.xz yuzu-07c9d9bdbdbf632624ca01ea83dbfa51176415ae.tar.zst yuzu-07c9d9bdbdbf632624ca01ea83dbfa51176415ae.zip |
Diffstat (limited to 'src/core/hle/kernel/hle_ipc.h')
-rw-r--r-- | src/core/hle/kernel/hle_ipc.h | 9 |
1 files changed, 5 insertions, 4 deletions
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<ServiceThread> service_thread; }; +using SessionRequestHandlerWeakPtr = std::weak_ptr<SessionRequestHandler>; using SessionRequestHandlerPtr = std::shared_ptr<SessionRequestHandler>; /** @@ -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 <typename T> std::shared_ptr<T> GetDomainHandler(std::size_t index) const { - return std::static_pointer_cast<T>(manager->DomainHandler(index)); + return std::static_pointer_cast<T>(manager.lock()->DomainHandler(index).lock()); } - void SetSessionRequestManager(std::shared_ptr<SessionRequestManager> manager_) { + void SetSessionRequestManager(std::weak_ptr<SessionRequestManager> manager_) { manager = std::move(manager_); } @@ -374,7 +375,7 @@ private: u32 handles_offset{}; u32 domain_offset{}; - std::shared_ptr<SessionRequestManager> manager; + std::weak_ptr<SessionRequestManager> manager; KernelCore& kernel; Core::Memory::Memory& memory; |