diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/hle/service/audio/audin_u.cpp | 10 | ||||
| -rw-r--r-- | src/core/hle/service/audio/audout_u.cpp | 10 | ||||
| -rw-r--r-- | src/core/hle/service/audio/audren_u.cpp | 6 | ||||
| -rw-r--r-- | src/core/hle/service/audio/hwopus.cpp | 2 | ||||
| -rw-r--r-- | src/core/hle/service/bcat/bcat_module.cpp | 4 | ||||
| -rw-r--r-- | src/core/hle/service/es/es.cpp | 27 | ||||
| -rw-r--r-- | src/core/hle/service/filesystem/fsp_srv.cpp | 4 | ||||
| -rw-r--r-- | src/core/hle/service/ldn/ldn.cpp | 4 | ||||
| -rw-r--r-- | src/core/hle/service/nfc/nfc_user.cpp | 2 | ||||
| -rw-r--r-- | src/core/hle/service/nfp/nfp_user.cpp | 6 | ||||
| -rw-r--r-- | src/core/hle/service/ns/iplatform_service_manager.cpp | 11 | ||||
| -rw-r--r-- | src/core/hle/service/set/set.cpp | 2 |
12 files changed, 41 insertions, 47 deletions
diff --git a/src/core/hle/service/audio/audin_u.cpp b/src/core/hle/service/audio/audin_u.cpp index 608925dfc..053e8f9dd 100644 --- a/src/core/hle/service/audio/audin_u.cpp +++ b/src/core/hle/service/audio/audin_u.cpp | |||
| @@ -122,10 +122,10 @@ private: | |||
| 122 | } | 122 | } |
| 123 | 123 | ||
| 124 | void GetReleasedAudioInBuffer(Kernel::HLERequestContext& ctx) { | 124 | void GetReleasedAudioInBuffer(Kernel::HLERequestContext& ctx) { |
| 125 | auto write_buffer_size = ctx.GetWriteBufferSize() / sizeof(u64); | 125 | const auto write_buffer_size = ctx.GetWriteBufferNumElements<u64>(); |
| 126 | std::vector<u64> released_buffers(write_buffer_size, 0); | 126 | std::vector<u64> released_buffers(write_buffer_size); |
| 127 | 127 | ||
| 128 | auto count = impl->GetReleasedBuffers(released_buffers); | 128 | const auto count = impl->GetReleasedBuffers(released_buffers); |
| 129 | 129 | ||
| 130 | [[maybe_unused]] std::string tags{}; | 130 | [[maybe_unused]] std::string tags{}; |
| 131 | for (u32 i = 0; i < count; i++) { | 131 | for (u32 i = 0; i < count; i++) { |
| @@ -228,7 +228,7 @@ void AudInU::ListAudioIns(Kernel::HLERequestContext& ctx) { | |||
| 228 | LOG_DEBUG(Service_Audio, "called"); | 228 | LOG_DEBUG(Service_Audio, "called"); |
| 229 | 229 | ||
| 230 | const auto write_count = | 230 | const auto write_count = |
| 231 | static_cast<u32>(ctx.GetWriteBufferSize() / sizeof(AudioDevice::AudioDeviceName)); | 231 | static_cast<u32>(ctx.GetWriteBufferNumElements<AudioDevice::AudioDeviceName>()); |
| 232 | std::vector<AudioDevice::AudioDeviceName> device_names{}; | 232 | std::vector<AudioDevice::AudioDeviceName> device_names{}; |
| 233 | 233 | ||
| 234 | u32 out_count{0}; | 234 | u32 out_count{0}; |
| @@ -248,7 +248,7 @@ void AudInU::ListAudioInsAutoFiltered(Kernel::HLERequestContext& ctx) { | |||
| 248 | LOG_DEBUG(Service_Audio, "called"); | 248 | LOG_DEBUG(Service_Audio, "called"); |
| 249 | 249 | ||
| 250 | const auto write_count = | 250 | const auto write_count = |
| 251 | static_cast<u32>(ctx.GetWriteBufferSize() / sizeof(AudioDevice::AudioDeviceName)); | 251 | static_cast<u32>(ctx.GetWriteBufferNumElements<AudioDevice::AudioDeviceName>()); |
| 252 | std::vector<AudioDevice::AudioDeviceName> device_names{}; | 252 | std::vector<AudioDevice::AudioDeviceName> device_names{}; |
| 253 | 253 | ||
| 254 | u32 out_count{0}; | 254 | u32 out_count{0}; |
diff --git a/src/core/hle/service/audio/audout_u.cpp b/src/core/hle/service/audio/audout_u.cpp index 122290c6a..29751f075 100644 --- a/src/core/hle/service/audio/audout_u.cpp +++ b/src/core/hle/service/audio/audout_u.cpp | |||
| @@ -129,16 +129,16 @@ private: | |||
| 129 | } | 129 | } |
| 130 | 130 | ||
| 131 | void GetReleasedAudioOutBuffers(Kernel::HLERequestContext& ctx) { | 131 | void GetReleasedAudioOutBuffers(Kernel::HLERequestContext& ctx) { |
| 132 | auto write_buffer_size = ctx.GetWriteBufferSize() / sizeof(u64); | 132 | const auto write_buffer_size = ctx.GetWriteBufferNumElements<u64>(); |
| 133 | std::vector<u64> released_buffers(write_buffer_size, 0); | 133 | std::vector<u64> released_buffers(write_buffer_size); |
| 134 | 134 | ||
| 135 | auto count = impl->GetReleasedBuffers(released_buffers); | 135 | const auto count = impl->GetReleasedBuffers(released_buffers); |
| 136 | 136 | ||
| 137 | [[maybe_unused]] std::string tags{}; | 137 | [[maybe_unused]] std::string tags{}; |
| 138 | for (u32 i = 0; i < count; i++) { | 138 | for (u32 i = 0; i < count; i++) { |
| 139 | tags += fmt::format("{:08X}, ", released_buffers[i]); | 139 | tags += fmt::format("{:08X}, ", released_buffers[i]); |
| 140 | } | 140 | } |
| 141 | [[maybe_unused]] auto sessionid{impl->GetSystem().GetSessionId()}; | 141 | [[maybe_unused]] const auto sessionid{impl->GetSystem().GetSessionId()}; |
| 142 | LOG_TRACE(Service_Audio, "called. Session {} released {} buffers: {}", sessionid, count, | 142 | LOG_TRACE(Service_Audio, "called. Session {} released {} buffers: {}", sessionid, count, |
| 143 | tags); | 143 | tags); |
| 144 | 144 | ||
| @@ -244,7 +244,7 @@ void AudOutU::ListAudioOuts(Kernel::HLERequestContext& ctx) { | |||
| 244 | std::scoped_lock l{impl->mutex}; | 244 | std::scoped_lock l{impl->mutex}; |
| 245 | 245 | ||
| 246 | const auto write_count = | 246 | const auto write_count = |
| 247 | static_cast<u32>(ctx.GetWriteBufferSize() / sizeof(AudioDevice::AudioDeviceName)); | 247 | static_cast<u32>(ctx.GetWriteBufferNumElements<AudioDevice::AudioDeviceName>()); |
| 248 | std::vector<AudioDevice::AudioDeviceName> device_names{}; | 248 | std::vector<AudioDevice::AudioDeviceName> device_names{}; |
| 249 | if (write_count > 0) { | 249 | if (write_count > 0) { |
| 250 | device_names.emplace_back("DeviceOut"); | 250 | device_names.emplace_back("DeviceOut"); |
diff --git a/src/core/hle/service/audio/audren_u.cpp b/src/core/hle/service/audio/audren_u.cpp index 13423dca6..034ee273f 100644 --- a/src/core/hle/service/audio/audren_u.cpp +++ b/src/core/hle/service/audio/audren_u.cpp | |||
| @@ -274,7 +274,7 @@ public: | |||
| 274 | 274 | ||
| 275 | private: | 275 | private: |
| 276 | void ListAudioDeviceName(Kernel::HLERequestContext& ctx) { | 276 | void ListAudioDeviceName(Kernel::HLERequestContext& ctx) { |
| 277 | const size_t in_count = ctx.GetWriteBufferSize() / sizeof(AudioDevice::AudioDeviceName); | 277 | const size_t in_count = ctx.GetWriteBufferNumElements<AudioDevice::AudioDeviceName>(); |
| 278 | 278 | ||
| 279 | std::vector<AudioDevice::AudioDeviceName> out_names{}; | 279 | std::vector<AudioDevice::AudioDeviceName> out_names{}; |
| 280 | 280 | ||
| @@ -335,7 +335,7 @@ private: | |||
| 335 | } | 335 | } |
| 336 | 336 | ||
| 337 | void GetActiveAudioDeviceName(Kernel::HLERequestContext& ctx) { | 337 | void GetActiveAudioDeviceName(Kernel::HLERequestContext& ctx) { |
| 338 | const auto write_size = ctx.GetWriteBufferSize() / sizeof(char); | 338 | const auto write_size = ctx.GetWriteBufferSize(); |
| 339 | std::string out_name{"AudioTvOutput"}; | 339 | std::string out_name{"AudioTvOutput"}; |
| 340 | 340 | ||
| 341 | LOG_DEBUG(Service_Audio, "(STUBBED) called. Name={}", out_name); | 341 | LOG_DEBUG(Service_Audio, "(STUBBED) called. Name={}", out_name); |
| @@ -387,7 +387,7 @@ private: | |||
| 387 | } | 387 | } |
| 388 | 388 | ||
| 389 | void ListAudioOutputDeviceName(Kernel::HLERequestContext& ctx) { | 389 | void ListAudioOutputDeviceName(Kernel::HLERequestContext& ctx) { |
| 390 | const size_t in_count = ctx.GetWriteBufferSize() / sizeof(AudioDevice::AudioDeviceName); | 390 | const size_t in_count = ctx.GetWriteBufferNumElements<AudioDevice::AudioDeviceName>(); |
| 391 | 391 | ||
| 392 | std::vector<AudioDevice::AudioDeviceName> out_names{}; | 392 | std::vector<AudioDevice::AudioDeviceName> out_names{}; |
| 393 | 393 | ||
diff --git a/src/core/hle/service/audio/hwopus.cpp b/src/core/hle/service/audio/hwopus.cpp index 8bafc3a98..825fb8bcc 100644 --- a/src/core/hle/service/audio/hwopus.cpp +++ b/src/core/hle/service/audio/hwopus.cpp | |||
| @@ -68,7 +68,7 @@ private: | |||
| 68 | ExtraBehavior extra_behavior) { | 68 | ExtraBehavior extra_behavior) { |
| 69 | u32 consumed = 0; | 69 | u32 consumed = 0; |
| 70 | u32 sample_count = 0; | 70 | u32 sample_count = 0; |
| 71 | std::vector<opus_int16> samples(ctx.GetWriteBufferSize() / sizeof(opus_int16)); | 71 | std::vector<opus_int16> samples(ctx.GetWriteBufferNumElements<opus_int16>()); |
| 72 | 72 | ||
| 73 | if (extra_behavior == ExtraBehavior::ResetContext) { | 73 | if (extra_behavior == ExtraBehavior::ResetContext) { |
| 74 | ResetDecoderContext(); | 74 | ResetDecoderContext(); |
diff --git a/src/core/hle/service/bcat/bcat_module.cpp b/src/core/hle/service/bcat/bcat_module.cpp index bc08ac487..cbe690a5d 100644 --- a/src/core/hle/service/bcat/bcat_module.cpp +++ b/src/core/hle/service/bcat/bcat_module.cpp | |||
| @@ -443,7 +443,7 @@ private: | |||
| 443 | } | 443 | } |
| 444 | 444 | ||
| 445 | void Read(Kernel::HLERequestContext& ctx) { | 445 | void Read(Kernel::HLERequestContext& ctx) { |
| 446 | auto write_size = ctx.GetWriteBufferSize() / sizeof(DeliveryCacheDirectoryEntry); | 446 | auto write_size = ctx.GetWriteBufferNumElements<DeliveryCacheDirectoryEntry>(); |
| 447 | 447 | ||
| 448 | LOG_DEBUG(Service_BCAT, "called, write_size={:016X}", write_size); | 448 | LOG_DEBUG(Service_BCAT, "called, write_size={:016X}", write_size); |
| 449 | 449 | ||
| @@ -533,7 +533,7 @@ private: | |||
| 533 | } | 533 | } |
| 534 | 534 | ||
| 535 | void EnumerateDeliveryCacheDirectory(Kernel::HLERequestContext& ctx) { | 535 | void EnumerateDeliveryCacheDirectory(Kernel::HLERequestContext& ctx) { |
| 536 | auto size = ctx.GetWriteBufferSize() / sizeof(DirectoryName); | 536 | auto size = ctx.GetWriteBufferNumElements<DirectoryName>(); |
| 537 | 537 | ||
| 538 | LOG_DEBUG(Service_BCAT, "called, size={:016X}", size); | 538 | LOG_DEBUG(Service_BCAT, "called, size={:016X}", size); |
| 539 | 539 | ||
diff --git a/src/core/hle/service/es/es.cpp b/src/core/hle/service/es/es.cpp index ff9b0427c..d183e5829 100644 --- a/src/core/hle/service/es/es.cpp +++ b/src/core/hle/service/es/es.cpp | |||
| @@ -192,12 +192,10 @@ private: | |||
| 192 | } | 192 | } |
| 193 | 193 | ||
| 194 | void ListCommonTicketRightsIds(Kernel::HLERequestContext& ctx) { | 194 | void ListCommonTicketRightsIds(Kernel::HLERequestContext& ctx) { |
| 195 | u32 out_entries; | 195 | size_t out_entries = 0; |
| 196 | if (keys.GetCommonTickets().empty()) | 196 | if (!keys.GetCommonTickets().empty()) { |
| 197 | out_entries = 0; | 197 | out_entries = ctx.GetWriteBufferNumElements<u128>(); |
| 198 | else | 198 | } |
| 199 | out_entries = static_cast<u32>(ctx.GetWriteBufferSize() / sizeof(u128)); | ||
| 200 | |||
| 201 | LOG_DEBUG(Service_ETicket, "called, entries={:016X}", out_entries); | 199 | LOG_DEBUG(Service_ETicket, "called, entries={:016X}", out_entries); |
| 202 | 200 | ||
| 203 | keys.PopulateTickets(); | 201 | keys.PopulateTickets(); |
| @@ -206,20 +204,19 @@ private: | |||
| 206 | std::transform(tickets.begin(), tickets.end(), std::back_inserter(ids), | 204 | std::transform(tickets.begin(), tickets.end(), std::back_inserter(ids), |
| 207 | [](const auto& pair) { return pair.first; }); | 205 | [](const auto& pair) { return pair.first; }); |
| 208 | 206 | ||
| 209 | out_entries = static_cast<u32>(std::min<std::size_t>(ids.size(), out_entries)); | 207 | out_entries = std::min(ids.size(), out_entries); |
| 210 | ctx.WriteBuffer(ids.data(), out_entries * sizeof(u128)); | 208 | ctx.WriteBuffer(ids.data(), out_entries * sizeof(u128)); |
| 211 | 209 | ||
| 212 | IPC::ResponseBuilder rb{ctx, 3}; | 210 | IPC::ResponseBuilder rb{ctx, 3}; |
| 213 | rb.Push(ResultSuccess); | 211 | rb.Push(ResultSuccess); |
| 214 | rb.Push<u32>(out_entries); | 212 | rb.Push<u32>(static_cast<u32>(out_entries)); |
| 215 | } | 213 | } |
| 216 | 214 | ||
| 217 | void ListPersonalizedTicketRightsIds(Kernel::HLERequestContext& ctx) { | 215 | void ListPersonalizedTicketRightsIds(Kernel::HLERequestContext& ctx) { |
| 218 | u32 out_entries; | 216 | size_t out_entries = 0; |
| 219 | if (keys.GetPersonalizedTickets().empty()) | 217 | if (!keys.GetPersonalizedTickets().empty()) { |
| 220 | out_entries = 0; | 218 | out_entries = ctx.GetWriteBufferNumElements<u128>(); |
| 221 | else | 219 | } |
| 222 | out_entries = static_cast<u32>(ctx.GetWriteBufferSize() / sizeof(u128)); | ||
| 223 | 220 | ||
| 224 | LOG_DEBUG(Service_ETicket, "called, entries={:016X}", out_entries); | 221 | LOG_DEBUG(Service_ETicket, "called, entries={:016X}", out_entries); |
| 225 | 222 | ||
| @@ -229,12 +226,12 @@ private: | |||
| 229 | std::transform(tickets.begin(), tickets.end(), std::back_inserter(ids), | 226 | std::transform(tickets.begin(), tickets.end(), std::back_inserter(ids), |
| 230 | [](const auto& pair) { return pair.first; }); | 227 | [](const auto& pair) { return pair.first; }); |
| 231 | 228 | ||
| 232 | out_entries = static_cast<u32>(std::min<std::size_t>(ids.size(), out_entries)); | 229 | out_entries = std::min(ids.size(), out_entries); |
| 233 | ctx.WriteBuffer(ids.data(), out_entries * sizeof(u128)); | 230 | ctx.WriteBuffer(ids.data(), out_entries * sizeof(u128)); |
| 234 | 231 | ||
| 235 | IPC::ResponseBuilder rb{ctx, 3}; | 232 | IPC::ResponseBuilder rb{ctx, 3}; |
| 236 | rb.Push(ResultSuccess); | 233 | rb.Push(ResultSuccess); |
| 237 | rb.Push<u32>(out_entries); | 234 | rb.Push<u32>(static_cast<u32>(out_entries)); |
| 238 | } | 235 | } |
| 239 | 236 | ||
| 240 | void GetCommonTicketSize(Kernel::HLERequestContext& ctx) { | 237 | void GetCommonTicketSize(Kernel::HLERequestContext& ctx) { |
diff --git a/src/core/hle/service/filesystem/fsp_srv.cpp b/src/core/hle/service/filesystem/fsp_srv.cpp index c08274ef9..fbb16a7da 100644 --- a/src/core/hle/service/filesystem/fsp_srv.cpp +++ b/src/core/hle/service/filesystem/fsp_srv.cpp | |||
| @@ -277,7 +277,7 @@ private: | |||
| 277 | LOG_DEBUG(Service_FS, "called."); | 277 | LOG_DEBUG(Service_FS, "called."); |
| 278 | 278 | ||
| 279 | // Calculate how many entries we can fit in the output buffer | 279 | // Calculate how many entries we can fit in the output buffer |
| 280 | const u64 count_entries = ctx.GetWriteBufferSize() / sizeof(FileSys::Entry); | 280 | const u64 count_entries = ctx.GetWriteBufferNumElements<FileSys::Entry>(); |
| 281 | 281 | ||
| 282 | // Cap at total number of entries. | 282 | // Cap at total number of entries. |
| 283 | const u64 actual_entries = std::min(count_entries, entries.size() - next_entry_index); | 283 | const u64 actual_entries = std::min(count_entries, entries.size() - next_entry_index); |
| @@ -543,7 +543,7 @@ public: | |||
| 543 | LOG_DEBUG(Service_FS, "called"); | 543 | LOG_DEBUG(Service_FS, "called"); |
| 544 | 544 | ||
| 545 | // Calculate how many entries we can fit in the output buffer | 545 | // Calculate how many entries we can fit in the output buffer |
| 546 | const u64 count_entries = ctx.GetWriteBufferSize() / sizeof(SaveDataInfo); | 546 | const u64 count_entries = ctx.GetWriteBufferNumElements<SaveDataInfo>(); |
| 547 | 547 | ||
| 548 | // Cap at total number of entries. | 548 | // Cap at total number of entries. |
| 549 | const u64 actual_entries = std::min(count_entries, info.size() - next_entry_index); | 549 | const u64 actual_entries = std::min(count_entries, info.size() - next_entry_index); |
diff --git a/src/core/hle/service/ldn/ldn.cpp b/src/core/hle/service/ldn/ldn.cpp index 6df563136..c49c61cff 100644 --- a/src/core/hle/service/ldn/ldn.cpp +++ b/src/core/hle/service/ldn/ldn.cpp | |||
| @@ -292,7 +292,7 @@ public: | |||
| 292 | 292 | ||
| 293 | void GetNetworkInfoLatestUpdate(Kernel::HLERequestContext& ctx) { | 293 | void GetNetworkInfoLatestUpdate(Kernel::HLERequestContext& ctx) { |
| 294 | const std::size_t network_buffer_size = ctx.GetWriteBufferSize(0); | 294 | const std::size_t network_buffer_size = ctx.GetWriteBufferSize(0); |
| 295 | const std::size_t node_buffer_count = ctx.GetWriteBufferSize(1) / sizeof(NodeLatestUpdate); | 295 | const std::size_t node_buffer_count = ctx.GetWriteBufferNumElements<NodeLatestUpdate>(1); |
| 296 | 296 | ||
| 297 | if (node_buffer_count == 0 || network_buffer_size != sizeof(NetworkInfo)) { | 297 | if (node_buffer_count == 0 || network_buffer_size != sizeof(NetworkInfo)) { |
| 298 | LOG_ERROR(Service_LDN, "Invalid buffer, size = {}, count = {}", network_buffer_size, | 298 | LOG_ERROR(Service_LDN, "Invalid buffer, size = {}, count = {}", network_buffer_size, |
| @@ -333,7 +333,7 @@ public: | |||
| 333 | const auto channel{rp.PopEnum<WifiChannel>()}; | 333 | const auto channel{rp.PopEnum<WifiChannel>()}; |
| 334 | const auto scan_filter{rp.PopRaw<ScanFilter>()}; | 334 | const auto scan_filter{rp.PopRaw<ScanFilter>()}; |
| 335 | 335 | ||
| 336 | const std::size_t network_info_size = ctx.GetWriteBufferSize() / sizeof(NetworkInfo); | 336 | const std::size_t network_info_size = ctx.GetWriteBufferNumElements<NetworkInfo>(); |
| 337 | 337 | ||
| 338 | if (network_info_size == 0) { | 338 | if (network_info_size == 0) { |
| 339 | LOG_ERROR(Service_LDN, "Invalid buffer size {}", network_info_size); | 339 | LOG_ERROR(Service_LDN, "Invalid buffer size {}", network_info_size); |
diff --git a/src/core/hle/service/nfc/nfc_user.cpp b/src/core/hle/service/nfc/nfc_user.cpp index 0753333bf..ced2d560b 100644 --- a/src/core/hle/service/nfc/nfc_user.cpp +++ b/src/core/hle/service/nfc/nfc_user.cpp | |||
| @@ -118,7 +118,7 @@ void IUser::ListDevices(Kernel::HLERequestContext& ctx) { | |||
| 118 | } | 118 | } |
| 119 | 119 | ||
| 120 | std::vector<u64> nfp_devices; | 120 | std::vector<u64> nfp_devices; |
| 121 | const std::size_t max_allowed_devices = ctx.GetWriteBufferSize() / sizeof(u64); | 121 | const std::size_t max_allowed_devices = ctx.GetWriteBufferNumElements<u64>(); |
| 122 | 122 | ||
| 123 | for (auto& device : devices) { | 123 | for (auto& device : devices) { |
| 124 | if (nfp_devices.size() >= max_allowed_devices) { | 124 | if (nfp_devices.size() >= max_allowed_devices) { |
diff --git a/src/core/hle/service/nfp/nfp_user.cpp b/src/core/hle/service/nfp/nfp_user.cpp index 2fe3c0ea0..49816b4c7 100644 --- a/src/core/hle/service/nfp/nfp_user.cpp +++ b/src/core/hle/service/nfp/nfp_user.cpp | |||
| @@ -104,9 +104,9 @@ void IUser::ListDevices(Kernel::HLERequestContext& ctx) { | |||
| 104 | } | 104 | } |
| 105 | 105 | ||
| 106 | std::vector<u64> nfp_devices; | 106 | std::vector<u64> nfp_devices; |
| 107 | const std::size_t max_allowed_devices = ctx.GetWriteBufferSize() / sizeof(u64); | 107 | const std::size_t max_allowed_devices = ctx.GetWriteBufferNumElements<u64>(); |
| 108 | 108 | ||
| 109 | for (auto& device : devices) { | 109 | for (const auto& device : devices) { |
| 110 | if (nfp_devices.size() >= max_allowed_devices) { | 110 | if (nfp_devices.size() >= max_allowed_devices) { |
| 111 | continue; | 111 | continue; |
| 112 | } | 112 | } |
| @@ -115,7 +115,7 @@ void IUser::ListDevices(Kernel::HLERequestContext& ctx) { | |||
| 115 | } | 115 | } |
| 116 | } | 116 | } |
| 117 | 117 | ||
| 118 | if (nfp_devices.size() == 0) { | 118 | if (nfp_devices.empty()) { |
| 119 | IPC::ResponseBuilder rb{ctx, 2}; | 119 | IPC::ResponseBuilder rb{ctx, 2}; |
| 120 | rb.Push(DeviceNotFound); | 120 | rb.Push(DeviceNotFound); |
| 121 | return; | 121 | return; |
diff --git a/src/core/hle/service/ns/iplatform_service_manager.cpp b/src/core/hle/service/ns/iplatform_service_manager.cpp index fd047ff26..1fab2f0dd 100644 --- a/src/core/hle/service/ns/iplatform_service_manager.cpp +++ b/src/core/hle/service/ns/iplatform_service_manager.cpp | |||
| @@ -279,13 +279,10 @@ void IPlatformServiceManager::GetSharedFontInOrderOfPriority(Kernel::HLERequestC | |||
| 279 | font_sizes.push_back(region.size); | 279 | font_sizes.push_back(region.size); |
| 280 | } | 280 | } |
| 281 | 281 | ||
| 282 | // Resize buffers if game requests smaller size output. | 282 | // Resize buffers if game requests smaller size output |
| 283 | font_codes.resize( | 283 | font_codes.resize(std::min(font_codes.size(), ctx.GetWriteBufferNumElements<u32>(0))); |
| 284 | std::min<std::size_t>(font_codes.size(), ctx.GetWriteBufferSize(0) / sizeof(u32))); | 284 | font_offsets.resize(std::min(font_offsets.size(), ctx.GetWriteBufferNumElements<u32>(1))); |
| 285 | font_offsets.resize( | 285 | font_sizes.resize(std::min(font_sizes.size(), ctx.GetWriteBufferNumElements<u32>(2))); |
| 286 | std::min<std::size_t>(font_offsets.size(), ctx.GetWriteBufferSize(1) / sizeof(u32))); | ||
| 287 | font_sizes.resize( | ||
| 288 | std::min<std::size_t>(font_sizes.size(), ctx.GetWriteBufferSize(2) / sizeof(u32))); | ||
| 289 | 286 | ||
| 290 | ctx.WriteBuffer(font_codes, 0); | 287 | ctx.WriteBuffer(font_codes, 0); |
| 291 | ctx.WriteBuffer(font_offsets, 1); | 288 | ctx.WriteBuffer(font_offsets, 1); |
diff --git a/src/core/hle/service/set/set.cpp b/src/core/hle/service/set/set.cpp index f761c2da4..4f1a8d6b7 100644 --- a/src/core/hle/service/set/set.cpp +++ b/src/core/hle/service/set/set.cpp | |||
| @@ -83,7 +83,7 @@ void PushResponseLanguageCode(Kernel::HLERequestContext& ctx, std::size_t num_la | |||
| 83 | } | 83 | } |
| 84 | 84 | ||
| 85 | void GetAvailableLanguageCodesImpl(Kernel::HLERequestContext& ctx, std::size_t max_entries) { | 85 | void GetAvailableLanguageCodesImpl(Kernel::HLERequestContext& ctx, std::size_t max_entries) { |
| 86 | const std::size_t requested_amount = ctx.GetWriteBufferSize() / sizeof(LanguageCode); | 86 | const std::size_t requested_amount = ctx.GetWriteBufferNumElements<LanguageCode>(); |
| 87 | const std::size_t max_amount = std::min(requested_amount, max_entries); | 87 | const std::size_t max_amount = std::min(requested_amount, max_entries); |
| 88 | const std::size_t copy_amount = std::min(available_language_codes.size(), max_amount); | 88 | const std::size_t copy_amount = std::min(available_language_codes.size(), max_amount); |
| 89 | const std::size_t copy_size = copy_amount * sizeof(LanguageCode); | 89 | const std::size_t copy_size = copy_amount * sizeof(LanguageCode); |