summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar bunnei2021-04-10 02:23:17 -0700
committerGravatar bunnei2021-05-05 16:40:51 -0700
commiteba3bb9d219283ffc2a7610d925aa157a81b6e4a (patch)
treefe0dd54f69efaa8435ef67f1f52af38e3b87fe66 /src
parenthle: kernel: Move slab heaps to their own container. (diff)
downloadyuzu-eba3bb9d219283ffc2a7610d925aa157a81b6e4a.tar.gz
yuzu-eba3bb9d219283ffc2a7610d925aa157a81b6e4a.tar.xz
yuzu-eba3bb9d219283ffc2a7610d925aa157a81b6e4a.zip
hle: ipc_helpers: Add methods for copy/move references.
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/ipc_helpers.h26
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:
218 void PushMoveObjects(O*... pointers); 218 void PushMoveObjects(O*... pointers);
219 219
220 template <typename... O> 220 template <typename... O>
221 void PushMoveObjects(O&... pointers);
222
223 template <typename... O>
221 void PushCopyObjects(O*... pointers); 224 void PushCopyObjects(O*... pointers);
222 225
226 template <typename... O>
227 void PushCopyObjects(O&... pointers);
228
223private: 229private:
224 u32 normal_params_size{}; 230 u32 normal_params_size{};
225 u32 num_handles_to_copy{}; 231 u32 num_handles_to_copy{};
@@ -304,7 +310,15 @@ template <typename... O>
304inline void ResponseBuilder::PushCopyObjects(O*... pointers) { 310inline void ResponseBuilder::PushCopyObjects(O*... pointers) {
305 auto objects = {pointers...}; 311 auto objects = {pointers...};
306 for (auto& object : objects) { 312 for (auto& object : objects) {
307 context->AddCopyObject(std::move(object)); 313 context->AddCopyObject(object);
314 }
315}
316
317template <typename... O>
318inline void ResponseBuilder::PushCopyObjects(O&... pointers) {
319 auto objects = {&pointers...};
320 for (auto& object : objects) {
321 context->AddCopyObject(object);
308 } 322 }
309} 323}
310 324
@@ -312,7 +326,15 @@ template <typename... O>
312inline void ResponseBuilder::PushMoveObjects(O*... pointers) { 326inline void ResponseBuilder::PushMoveObjects(O*... pointers) {
313 auto objects = {pointers...}; 327 auto objects = {pointers...};
314 for (auto& object : objects) { 328 for (auto& object : objects) {
315 context->AddMoveObject(std::move(object)); 329 context->AddMoveObject(object);
330 }
331}
332
333template <typename... O>
334inline void ResponseBuilder::PushMoveObjects(O&... pointers) {
335 auto objects = {&pointers...};
336 for (auto& object : objects) {
337 context->AddMoveObject(object);
316 } 338 }
317} 339}
318 340