diff options
| author | 2018-03-31 16:05:19 -0400 | |
|---|---|---|
| committer | 2018-03-31 16:06:46 -0400 | |
| commit | eef097bdc7dfbc0738ed3cacaded0773a223885b (patch) | |
| tree | 51d8a8411499745968444a89973201d4cb3007ec /src | |
| parent | fsp_srv: Implement GetSize and SetSize. (diff) | |
| download | yuzu-eef097bdc7dfbc0738ed3cacaded0773a223885b.tar.gz yuzu-eef097bdc7dfbc0738ed3cacaded0773a223885b.tar.xz yuzu-eef097bdc7dfbc0738ed3cacaded0773a223885b.zip | |
hle_ipc: Do not ensure write buffer size.
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/hle/kernel/hle_ipc.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/core/hle/kernel/hle_ipc.cpp b/src/core/hle/kernel/hle_ipc.cpp index ffcbfe64f..4bbeb0a16 100644 --- a/src/core/hle/kernel/hle_ipc.cpp +++ b/src/core/hle/kernel/hle_ipc.cpp | |||
| @@ -268,8 +268,11 @@ std::vector<u8> HLERequestContext::ReadBuffer() const { | |||
| 268 | 268 | ||
| 269 | size_t HLERequestContext::WriteBuffer(const void* buffer, size_t size) const { | 269 | size_t HLERequestContext::WriteBuffer(const void* buffer, size_t size) const { |
| 270 | const bool is_buffer_b{BufferDescriptorB().size() && BufferDescriptorB()[0].Size()}; | 270 | const bool is_buffer_b{BufferDescriptorB().size() && BufferDescriptorB()[0].Size()}; |
| 271 | 271 | const size_t buffer_size{GetWriteBufferSize()}; | |
| 272 | ASSERT_MSG(size <= GetWriteBufferSize(), "Size %lx is too big", size); | 272 | if (size > buffer_size) { |
| 273 | LOG_CRITICAL(Core, "size=%08x is greater than buffer_size=%08x", size, buffer_size); | ||
| 274 | size = buffer_size; // TODO(bunnei): This needs to be HW tested | ||
| 275 | } | ||
| 273 | 276 | ||
| 274 | if (is_buffer_b) { | 277 | if (is_buffer_b) { |
| 275 | Memory::WriteBlock(BufferDescriptorB()[0].Address(), buffer, size); | 278 | Memory::WriteBlock(BufferDescriptorB()[0].Address(), buffer, size); |