diff options
author | bunnei <bunneidev@gmail.com> | 2021-04-10 11:23:17 +0200 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2021-05-06 01:40:51 +0200 |
commit | eba3bb9d219283ffc2a7610d925aa157a81b6e4a (patch) | |
tree | fe0dd54f69efaa8435ef67f1f52af38e3b87fe66 /src/core | |
parent | hle: kernel: Move slab heaps to their own container. (diff) | |
download | yuzu-eba3bb9d219283ffc2a7610d925aa157a81b6e4a.tar yuzu-eba3bb9d219283ffc2a7610d925aa157a81b6e4a.tar.gz yuzu-eba3bb9d219283ffc2a7610d925aa157a81b6e4a.tar.bz2 yuzu-eba3bb9d219283ffc2a7610d925aa157a81b6e4a.tar.lz yuzu-eba3bb9d219283ffc2a7610d925aa157a81b6e4a.tar.xz yuzu-eba3bb9d219283ffc2a7610d925aa157a81b6e4a.tar.zst yuzu-eba3bb9d219283ffc2a7610d925aa157a81b6e4a.zip |
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/hle/ipc_helpers.h | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/core/hle/ipc_helpers.h b/src/core/hle/ipc_helpers.h index 224bee950..8f12616bd 100644 --- a/src/core/hle/ipc_helpers.h +++ b/src/core/hle/ipc_helpers.h @@ -218,8 +218,14 @@ public: void PushMoveObjects(O*... pointers); template <typename... O> + void PushMoveObjects(O&... pointers); + + template <typename... O> void PushCopyObjects(O*... pointers); + template <typename... O> + void PushCopyObjects(O&... pointers); + private: u32 normal_params_size{}; u32 num_handles_to_copy{}; @@ -304,7 +310,15 @@ template <typename... O> inline void ResponseBuilder::PushCopyObjects(O*... pointers) { auto objects = {pointers...}; for (auto& object : objects) { - context->AddCopyObject(std::move(object)); + context->AddCopyObject(object); + } +} + +template <typename... O> +inline void ResponseBuilder::PushCopyObjects(O&... pointers) { + auto objects = {&pointers...}; + for (auto& object : objects) { + context->AddCopyObject(object); } } @@ -312,7 +326,15 @@ template <typename... O> inline void ResponseBuilder::PushMoveObjects(O*... pointers) { auto objects = {pointers...}; for (auto& object : objects) { - context->AddMoveObject(std::move(object)); + context->AddMoveObject(object); + } +} + +template <typename... O> +inline void ResponseBuilder::PushMoveObjects(O&... pointers) { + auto objects = {&pointers...}; + for (auto& object : objects) { + context->AddMoveObject(object); } } |