diff options
| author | 2020-04-19 14:24:15 -0400 | |
|---|---|---|
| committer | 2020-04-19 14:24:15 -0400 | |
| commit | 10fb26f69c182bdaa2a04eae103b14c0f2f12c3a (patch) | |
| tree | fc1cbddd4849da5489bfeeacd5dbd0d51c88980a | |
| parent | Merge pull request #3655 from FearlessTobi/ui-retext-yuzu (diff) | |
| parent | hle_ipc: Remove std::size_t casts where applicable (diff) | |
| download | yuzu-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.cpp | 32 | ||||
| -rw-r--r-- | src/core/hle/kernel/hle_ipc.h | 12 |
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 | ||
| 285 | std::vector<u8> HLERequestContext::ReadBuffer(int buffer_index) const { | 285 | std::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 | ||
| 306 | std::size_t HLERequestContext::WriteBuffer(const void* buffer, std::size_t size, | 306 | std::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 | ||
| 340 | std::size_t HLERequestContext::GetReadBufferSize(int buffer_index) const { | 340 | std::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 | ||
| 358 | std::size_t HLERequestContext::GetWriteBufferSize(int buffer_index) const { | 358 | std::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) { |