summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/hle_ipc.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2022-03-11 08:45:54 +0100
committerbunnei <bunneidev@gmail.com>2022-03-15 02:14:53 +0100
commit07c9d9bdbdbf632624ca01ea83dbfa51176415ae (patch)
tree7c9a425ed2c7397e679d24356e36ab54372c7755 /src/core/hle/kernel/hle_ipc.h
parentcore: hle: kernel: k_memory_layout: Update kernel slab memory sizes. (diff)
downloadyuzu-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 '')
-rw-r--r--src/core/hle/kernel/hle_ipc.h9
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;