summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar bunnei2020-04-19 14:24:15 -0400
committerGravatar GitHub2020-04-19 14:24:15 -0400
commit10fb26f69c182bdaa2a04eae103b14c0f2f12c3a (patch)
treefc1cbddd4849da5489bfeeacd5dbd0d51c88980a
parentMerge pull request #3655 from FearlessTobi/ui-retext-yuzu (diff)
parenthle_ipc: Remove std::size_t casts where applicable (diff)
downloadyuzu-10fb26f69c182bdaa2a04eae103b14c0f2f12c3a.tar.gz
yuzu-10fb26f69c182bdaa2a04eae103b14c0f2f12c3a.tar.xz
yuzu-10fb26f69c182bdaa2a04eae103b14c0f2f12c3a.zip
Merge pull request #3696 from lioncash/cast-size
hle_ipc: Remove std::size_t casts where applicable
-rw-r--r--src/core/hle/kernel/hle_ipc.cpp32
-rw-r--r--src/core/hle/kernel/hle_ipc.h12
2 files changed, 23 insertions, 21 deletions
diff --git a/src/core/hle/kernel/hle_ipc.cpp b/src/core/hle/kernel/hle_ipc.cpp
index d65dae3ae..91d94025c 100644
--- a/src/core/hle/kernel/hle_ipc.cpp
+++ b/src/core/hle/kernel/hle_ipc.cpp
@@ -282,19 +282,19 @@ ResultCode HLERequestContext::WriteToOutgoingCommandBuffer(Thread& thread) {
282 return RESULT_SUCCESS; 282 return RESULT_SUCCESS;
283} 283}
284 284
285std::vector<u8> HLERequestContext::ReadBuffer(int buffer_index) const { 285std::vector<u8> HLERequestContext::ReadBuffer(std::size_t buffer_index) const {
286 std::vector<u8> buffer; 286 std::vector<u8> buffer;
287 const bool is_buffer_a{BufferDescriptorA().size() > std::size_t(buffer_index) && 287 const bool is_buffer_a{BufferDescriptorA().size() > buffer_index &&
288 BufferDescriptorA()[buffer_index].Size()}; 288 BufferDescriptorA()[buffer_index].Size()};
289 auto& memory = Core::System::GetInstance().Memory(); 289 auto& memory = Core::System::GetInstance().Memory();
290 290
291 if (is_buffer_a) { 291 if (is_buffer_a) {
292 ASSERT_MSG(BufferDescriptorA().size() > std::size_t(buffer_index), 292 ASSERT_MSG(BufferDescriptorA().size() > buffer_index,
293 "BufferDescriptorA invalid buffer_index {}", buffer_index); 293 "BufferDescriptorA invalid buffer_index {}", buffer_index);
294 buffer.resize(BufferDescriptorA()[buffer_index].Size()); 294 buffer.resize(BufferDescriptorA()[buffer_index].Size());
295 memory.ReadBlock(BufferDescriptorA()[buffer_index].Address(), buffer.data(), buffer.size()); 295 memory.ReadBlock(BufferDescriptorA()[buffer_index].Address(), buffer.data(), buffer.size());
296 } else { 296 } else {
297 ASSERT_MSG(BufferDescriptorX().size() > std::size_t(buffer_index), 297 ASSERT_MSG(BufferDescriptorX().size() > buffer_index,
298 "BufferDescriptorX invalid buffer_index {}", buffer_index); 298 "BufferDescriptorX invalid buffer_index {}", buffer_index);
299 buffer.resize(BufferDescriptorX()[buffer_index].Size()); 299 buffer.resize(BufferDescriptorX()[buffer_index].Size());
300 memory.ReadBlock(BufferDescriptorX()[buffer_index].Address(), buffer.data(), buffer.size()); 300 memory.ReadBlock(BufferDescriptorX()[buffer_index].Address(), buffer.data(), buffer.size());
@@ -304,13 +304,13 @@ std::vector<u8> HLERequestContext::ReadBuffer(int buffer_index) const {
304} 304}
305 305
306std::size_t HLERequestContext::WriteBuffer(const void* buffer, std::size_t size, 306std::size_t HLERequestContext::WriteBuffer(const void* buffer, std::size_t size,
307 int buffer_index) const { 307 std::size_t buffer_index) const {
308 if (size == 0) { 308 if (size == 0) {
309 LOG_WARNING(Core, "skip empty buffer write"); 309 LOG_WARNING(Core, "skip empty buffer write");
310 return 0; 310 return 0;
311 } 311 }
312 312
313 const bool is_buffer_b{BufferDescriptorB().size() > std::size_t(buffer_index) && 313 const bool is_buffer_b{BufferDescriptorB().size() > buffer_index &&
314 BufferDescriptorB()[buffer_index].Size()}; 314 BufferDescriptorB()[buffer_index].Size()};
315 const std::size_t buffer_size{GetWriteBufferSize(buffer_index)}; 315 const std::size_t buffer_size{GetWriteBufferSize(buffer_index)};
316 if (size > buffer_size) { 316 if (size > buffer_size) {
@@ -321,13 +321,13 @@ std::size_t HLERequestContext::WriteBuffer(const void* buffer, std::size_t size,
321 321
322 auto& memory = Core::System::GetInstance().Memory(); 322 auto& memory = Core::System::GetInstance().Memory();
323 if (is_buffer_b) { 323 if (is_buffer_b) {
324 ASSERT_MSG(BufferDescriptorB().size() > std::size_t(buffer_index), 324 ASSERT_MSG(BufferDescriptorB().size() > buffer_index,
325 "BufferDescriptorB invalid buffer_index {}", buffer_index); 325 "BufferDescriptorB invalid buffer_index {}", buffer_index);
326 ASSERT_MSG(BufferDescriptorB()[buffer_index].Size() >= size, 326 ASSERT_MSG(BufferDescriptorB()[buffer_index].Size() >= size,
327 "BufferDescriptorB buffer_index {} is not large enough", buffer_index); 327 "BufferDescriptorB buffer_index {} is not large enough", buffer_index);
328 memory.WriteBlock(BufferDescriptorB()[buffer_index].Address(), buffer, size); 328 memory.WriteBlock(BufferDescriptorB()[buffer_index].Address(), buffer, size);
329 } else { 329 } else {
330 ASSERT_MSG(BufferDescriptorC().size() > std::size_t(buffer_index), 330 ASSERT_MSG(BufferDescriptorC().size() > buffer_index,
331 "BufferDescriptorC invalid buffer_index {}", buffer_index); 331 "BufferDescriptorC invalid buffer_index {}", buffer_index);
332 ASSERT_MSG(BufferDescriptorC()[buffer_index].Size() >= size, 332 ASSERT_MSG(BufferDescriptorC()[buffer_index].Size() >= size,
333 "BufferDescriptorC buffer_index {} is not large enough", buffer_index); 333 "BufferDescriptorC buffer_index {} is not large enough", buffer_index);
@@ -337,17 +337,17 @@ std::size_t HLERequestContext::WriteBuffer(const void* buffer, std::size_t size,
337 return size; 337 return size;
338} 338}
339 339
340std::size_t HLERequestContext::GetReadBufferSize(int buffer_index) const { 340std::size_t HLERequestContext::GetReadBufferSize(std::size_t buffer_index) const {
341 const bool is_buffer_a{BufferDescriptorA().size() > std::size_t(buffer_index) && 341 const bool is_buffer_a{BufferDescriptorA().size() > buffer_index &&
342 BufferDescriptorA()[buffer_index].Size()}; 342 BufferDescriptorA()[buffer_index].Size()};
343 if (is_buffer_a) { 343 if (is_buffer_a) {
344 ASSERT_MSG(BufferDescriptorA().size() > std::size_t(buffer_index), 344 ASSERT_MSG(BufferDescriptorA().size() > buffer_index,
345 "BufferDescriptorA invalid buffer_index {}", buffer_index); 345 "BufferDescriptorA invalid buffer_index {}", buffer_index);
346 ASSERT_MSG(BufferDescriptorA()[buffer_index].Size() > 0, 346 ASSERT_MSG(BufferDescriptorA()[buffer_index].Size() > 0,
347 "BufferDescriptorA buffer_index {} is empty", buffer_index); 347 "BufferDescriptorA buffer_index {} is empty", buffer_index);
348 return BufferDescriptorA()[buffer_index].Size(); 348 return BufferDescriptorA()[buffer_index].Size();
349 } else { 349 } else {
350 ASSERT_MSG(BufferDescriptorX().size() > std::size_t(buffer_index), 350 ASSERT_MSG(BufferDescriptorX().size() > buffer_index,
351 "BufferDescriptorX invalid buffer_index {}", buffer_index); 351 "BufferDescriptorX invalid buffer_index {}", buffer_index);
352 ASSERT_MSG(BufferDescriptorX()[buffer_index].Size() > 0, 352 ASSERT_MSG(BufferDescriptorX()[buffer_index].Size() > 0,
353 "BufferDescriptorX buffer_index {} is empty", buffer_index); 353 "BufferDescriptorX buffer_index {} is empty", buffer_index);
@@ -355,15 +355,15 @@ std::size_t HLERequestContext::GetReadBufferSize(int buffer_index) const {
355 } 355 }
356} 356}
357 357
358std::size_t HLERequestContext::GetWriteBufferSize(int buffer_index) const { 358std::size_t HLERequestContext::GetWriteBufferSize(std::size_t buffer_index) const {
359 const bool is_buffer_b{BufferDescriptorB().size() > std::size_t(buffer_index) && 359 const bool is_buffer_b{BufferDescriptorB().size() > buffer_index &&
360 BufferDescriptorB()[buffer_index].Size()}; 360 BufferDescriptorB()[buffer_index].Size()};
361 if (is_buffer_b) { 361 if (is_buffer_b) {
362 ASSERT_MSG(BufferDescriptorB().size() > std::size_t(buffer_index), 362 ASSERT_MSG(BufferDescriptorB().size() > buffer_index,
363 "BufferDescriptorB invalid buffer_index {}", buffer_index); 363 "BufferDescriptorB invalid buffer_index {}", buffer_index);
364 return BufferDescriptorB()[buffer_index].Size(); 364 return BufferDescriptorB()[buffer_index].Size();
365 } else { 365 } else {
366 ASSERT_MSG(BufferDescriptorC().size() > std::size_t(buffer_index), 366 ASSERT_MSG(BufferDescriptorC().size() > buffer_index,
367 "BufferDescriptorC invalid buffer_index {}", buffer_index); 367 "BufferDescriptorC invalid buffer_index {}", buffer_index);
368 return BufferDescriptorC()[buffer_index].Size(); 368 return BufferDescriptorC()[buffer_index].Size();
369 } 369 }
diff --git a/src/core/hle/kernel/hle_ipc.h b/src/core/hle/kernel/hle_ipc.h
index 050ad8fd7..af3330297 100644
--- a/src/core/hle/kernel/hle_ipc.h
+++ b/src/core/hle/kernel/hle_ipc.h
@@ -179,10 +179,11 @@ public:
179 } 179 }
180 180
181 /// Helper function to read a buffer using the appropriate buffer descriptor 181 /// Helper function to read a buffer using the appropriate buffer descriptor
182 std::vector<u8> ReadBuffer(int buffer_index = 0) const; 182 std::vector<u8> ReadBuffer(std::size_t buffer_index = 0) const;
183 183
184 /// Helper function to write a buffer using the appropriate buffer descriptor 184 /// Helper function to write a buffer using the appropriate buffer descriptor
185 std::size_t WriteBuffer(const void* buffer, std::size_t size, int buffer_index = 0) const; 185 std::size_t WriteBuffer(const void* buffer, std::size_t size,
186 std::size_t buffer_index = 0) const;
186 187
187 /* Helper function to write a buffer using the appropriate buffer descriptor 188 /* Helper function to write a buffer using the appropriate buffer descriptor
188 * 189 *
@@ -194,7 +195,8 @@ public:
194 */ 195 */
195 template <typename ContiguousContainer, 196 template <typename ContiguousContainer,
196 typename = std::enable_if_t<!std::is_pointer_v<ContiguousContainer>>> 197 typename = std::enable_if_t<!std::is_pointer_v<ContiguousContainer>>>
197 std::size_t WriteBuffer(const ContiguousContainer& container, int buffer_index = 0) const { 198 std::size_t WriteBuffer(const ContiguousContainer& container,
199 std::size_t buffer_index = 0) const {
198 using ContiguousType = typename ContiguousContainer::value_type; 200 using ContiguousType = typename ContiguousContainer::value_type;
199 201
200 static_assert(std::is_trivially_copyable_v<ContiguousType>, 202 static_assert(std::is_trivially_copyable_v<ContiguousType>,
@@ -205,10 +207,10 @@ public:
205 } 207 }
206 208
207 /// Helper function to get the size of the input buffer 209 /// Helper function to get the size of the input buffer
208 std::size_t GetReadBufferSize(int buffer_index = 0) const; 210 std::size_t GetReadBufferSize(std::size_t buffer_index = 0) const;
209 211
210 /// Helper function to get the size of the output buffer 212 /// Helper function to get the size of the output buffer
211 std::size_t GetWriteBufferSize(int buffer_index = 0) const; 213 std::size_t GetWriteBufferSize(std::size_t buffer_index = 0) const;
212 214
213 template <typename T> 215 template <typename T>
214 std::shared_ptr<T> GetCopyObject(std::size_t index) { 216 std::shared_ptr<T> GetCopyObject(std::size_t index) {