summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/hle/kernel/hle_ipc.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/core/hle/kernel/hle_ipc.cpp b/src/core/hle/kernel/hle_ipc.cpp
index 06010b8d1..286e3f078 100644
--- a/src/core/hle/kernel/hle_ipc.cpp
+++ b/src/core/hle/kernel/hle_ipc.cpp
@@ -318,25 +318,23 @@ Result HLERequestContext::WriteToOutgoingCommandBuffer(KThread& requesting_threa
318} 318}
319 319
320std::vector<u8> HLERequestContext::ReadBuffer(std::size_t buffer_index) const { 320std::vector<u8> HLERequestContext::ReadBuffer(std::size_t buffer_index) const {
321 std::vector<u8> buffer{};
322 const bool is_buffer_a{BufferDescriptorA().size() > buffer_index && 321 const bool is_buffer_a{BufferDescriptorA().size() > buffer_index &&
323 BufferDescriptorA()[buffer_index].Size()}; 322 BufferDescriptorA()[buffer_index].Size()};
324
325 if (is_buffer_a) { 323 if (is_buffer_a) {
326 ASSERT_OR_EXECUTE_MSG( 324 ASSERT_OR_EXECUTE_MSG(
327 BufferDescriptorA().size() > buffer_index, { return buffer; }, 325 BufferDescriptorA().size() > buffer_index, { return {}; },
328 "BufferDescriptorA invalid buffer_index {}", buffer_index); 326 "BufferDescriptorA invalid buffer_index {}", buffer_index);
329 buffer.resize(BufferDescriptorA()[buffer_index].Size()); 327 std::vector<u8> buffer(BufferDescriptorA()[buffer_index].Size());
330 memory.ReadBlock(BufferDescriptorA()[buffer_index].Address(), buffer.data(), buffer.size()); 328 memory.ReadBlock(BufferDescriptorA()[buffer_index].Address(), buffer.data(), buffer.size());
329 return buffer;
331 } else { 330 } else {
332 ASSERT_OR_EXECUTE_MSG( 331 ASSERT_OR_EXECUTE_MSG(
333 BufferDescriptorX().size() > buffer_index, { return buffer; }, 332 BufferDescriptorX().size() > buffer_index, { return {}; },
334 "BufferDescriptorX invalid buffer_index {}", buffer_index); 333 "BufferDescriptorX invalid buffer_index {}", buffer_index);
335 buffer.resize(BufferDescriptorX()[buffer_index].Size()); 334 std::vector<u8> buffer(BufferDescriptorX()[buffer_index].Size());
336 memory.ReadBlock(BufferDescriptorX()[buffer_index].Address(), buffer.data(), buffer.size()); 335 memory.ReadBlock(BufferDescriptorX()[buffer_index].Address(), buffer.data(), buffer.size());
336 return buffer;
337 } 337 }
338
339 return buffer;
340} 338}
341 339
342std::size_t HLERequestContext::WriteBuffer(const void* buffer, std::size_t size, 340std::size_t HLERequestContext::WriteBuffer(const void* buffer, std::size_t size,