diff options
Diffstat (limited to 'src/core/hle/kernel/hle_ipc.h')
-rw-r--r-- | src/core/hle/kernel/hle_ipc.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/core/hle/kernel/hle_ipc.h b/src/core/hle/kernel/hle_ipc.h index 09caa43df..6dceb766d 100644 --- a/src/core/hle/kernel/hle_ipc.h +++ b/src/core/hle/kernel/hle_ipc.h @@ -151,13 +151,13 @@ public: return domain != nullptr; } - template<typename T> + template <typename T> SharedPtr<T> GetCopyObject(size_t index) { ASSERT(index < copy_objects.size()); return DynamicObjectCast<T>(copy_objects[index]); } - template<typename T> + template <typename T> SharedPtr<T> GetMoveObject(size_t index) { ASSERT(index < move_objects.size()); return DynamicObjectCast<T>(move_objects[index]); @@ -175,6 +175,14 @@ public: domain_objects.emplace_back(std::move(object)); } + /// Clears the list of objects so that no lingering objects are written accidentally to the + /// response buffer. + void ClearIncomingObjects() { + move_objects.clear(); + copy_objects.clear(); + domain_objects.clear(); + } + private: std::array<u32, IPC::COMMAND_BUFFER_LENGTH> cmd_buf; SharedPtr<Kernel::Domain> domain; |