diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/hle/kernel/hle_ipc.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/core/hle/kernel/hle_ipc.cpp b/src/core/hle/kernel/hle_ipc.cpp index 06010b8d1..e6479c131 100644 --- a/src/core/hle/kernel/hle_ipc.cpp +++ b/src/core/hle/kernel/hle_ipc.cpp | |||
| @@ -167,6 +167,9 @@ void HLERequestContext::ParseCommandBuffer(const KHandleTable& handle_table, u32 | |||
| 167 | } | 167 | } |
| 168 | if (incoming) { | 168 | if (incoming) { |
| 169 | // Populate the object lists with the data in the IPC request. | 169 | // Populate the object lists with the data in the IPC request. |
| 170 | incoming_copy_handles.reserve(handle_descriptor_header->num_handles_to_copy); | ||
| 171 | incoming_move_handles.reserve(handle_descriptor_header->num_handles_to_move); | ||
| 172 | |||
| 170 | for (u32 handle = 0; handle < handle_descriptor_header->num_handles_to_copy; ++handle) { | 173 | for (u32 handle = 0; handle < handle_descriptor_header->num_handles_to_copy; ++handle) { |
| 171 | incoming_copy_handles.push_back(rp.Pop<Handle>()); | 174 | incoming_copy_handles.push_back(rp.Pop<Handle>()); |
| 172 | } | 175 | } |
| @@ -181,6 +184,11 @@ void HLERequestContext::ParseCommandBuffer(const KHandleTable& handle_table, u32 | |||
| 181 | } | 184 | } |
| 182 | } | 185 | } |
| 183 | 186 | ||
| 187 | buffer_x_desciptors.reserve(command_header->num_buf_x_descriptors); | ||
| 188 | buffer_a_desciptors.reserve(command_header->num_buf_a_descriptors); | ||
| 189 | buffer_b_desciptors.reserve(command_header->num_buf_b_descriptors); | ||
| 190 | buffer_w_desciptors.reserve(command_header->num_buf_w_descriptors); | ||
| 191 | |||
| 184 | for (u32 i = 0; i < command_header->num_buf_x_descriptors; ++i) { | 192 | for (u32 i = 0; i < command_header->num_buf_x_descriptors; ++i) { |
| 185 | buffer_x_desciptors.push_back(rp.PopRaw<IPC::BufferDescriptorX>()); | 193 | buffer_x_desciptors.push_back(rp.PopRaw<IPC::BufferDescriptorX>()); |
| 186 | } | 194 | } |