diff options
| author | bunnei <bunneidev@gmail.com> | 2021-04-03 21:21:22 -0700 |
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2021-05-05 16:40:50 -0700 |
| commit | 5e5933256b022f6890fc3f14164ae9e9c3ee9ae3 (patch) | |
| tree | f65bdacde0afe5465446f90e26f2da1b8126cda9 /src/core/hle/ipc_helpers.h | |
| parent | da7e9553dea4b1eaefb71aca8642ccce7c7f50fb (diff) | |
hle: kernel: Refactor IPC interfaces to not use std::shared_ptr.
Diffstat (limited to 'src/core/hle/ipc_helpers.h')
| -rw-r--r-- | src/core/hle/ipc_helpers.h | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/core/hle/ipc_helpers.h b/src/core/hle/ipc_helpers.h index 56cc911d1..224bee950 100644 --- a/src/core/hle/ipc_helpers.h +++ b/src/core/hle/ipc_helpers.h @@ -138,8 +138,8 @@ public: context->AddDomainObject(std::move(iface)); } else { auto [client, server] = Kernel::Session::Create(kernel, iface->GetServiceName()); - context->AddMoveObject(std::move(client)); - iface->ClientConnected(std::move(server)); + context->AddMoveObject(client.get()); + iface->ClientConnected(std::move(client), std::move(server)); } } @@ -215,10 +215,10 @@ public: void PushRaw(const T& value); template <typename... O> - void PushMoveObjects(std::shared_ptr<O>... pointers); + void PushMoveObjects(O*... pointers); template <typename... O> - void PushCopyObjects(std::shared_ptr<O>... pointers); + void PushCopyObjects(O*... pointers); private: u32 normal_params_size{}; @@ -301,7 +301,7 @@ void ResponseBuilder::Push(const First& first_value, const Other&... other_value } template <typename... O> -inline void ResponseBuilder::PushCopyObjects(std::shared_ptr<O>... pointers) { +inline void ResponseBuilder::PushCopyObjects(O*... pointers) { auto objects = {pointers...}; for (auto& object : objects) { context->AddCopyObject(std::move(object)); @@ -309,7 +309,7 @@ inline void ResponseBuilder::PushCopyObjects(std::shared_ptr<O>... pointers) { } template <typename... O> -inline void ResponseBuilder::PushMoveObjects(std::shared_ptr<O>... pointers) { +inline void ResponseBuilder::PushMoveObjects(O*... pointers) { auto objects = {pointers...}; for (auto& object : objects) { context->AddMoveObject(std::move(object)); @@ -360,10 +360,10 @@ public: T PopRaw(); template <typename T> - std::shared_ptr<T> GetMoveObject(std::size_t index); + T* GetMoveObject(std::size_t index); template <typename T> - std::shared_ptr<T> GetCopyObject(std::size_t index); + T* GetCopyObject(std::size_t index); template <class T> std::shared_ptr<T> PopIpcInterface() { @@ -470,12 +470,12 @@ void RequestParser::Pop(First& first_value, Other&... other_values) { } template <typename T> -std::shared_ptr<T> RequestParser::GetMoveObject(std::size_t index) { +T* RequestParser::GetMoveObject(std::size_t index) { return context->GetMoveObject<T>(index); } template <typename T> -std::shared_ptr<T> RequestParser::GetCopyObject(std::size_t index) { +T* RequestParser::GetCopyObject(std::size_t index) { return context->GetCopyObject<T>(index); } |
