summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Lioncash2022-11-23 13:25:14 -0500
committerGravatar Lioncash2022-11-23 13:43:20 -0500
commit97f273e94e83a679f42faa9c81916a1c058112e1 (patch)
treee2a2777ae3bec31b544516988fae36e8080150ff
parenthle_ipc: Add helper functions for getting number of buffer elements (diff)
downloadyuzu-97f273e94e83a679f42faa9c81916a1c058112e1.tar.gz
yuzu-97f273e94e83a679f42faa9c81916a1c058112e1.tar.xz
yuzu-97f273e94e83a679f42faa9c81916a1c058112e1.zip
service: Make use of buffer element count helpers
-rw-r--r--src/core/hle/service/audio/audin_u.cpp10
-rw-r--r--src/core/hle/service/audio/audout_u.cpp10
-rw-r--r--src/core/hle/service/audio/audren_u.cpp6
-rw-r--r--src/core/hle/service/audio/hwopus.cpp2
-rw-r--r--src/core/hle/service/bcat/bcat_module.cpp4
-rw-r--r--src/core/hle/service/es/es.cpp27
-rw-r--r--src/core/hle/service/filesystem/fsp_srv.cpp4
-rw-r--r--src/core/hle/service/ldn/ldn.cpp4
-rw-r--r--src/core/hle/service/nfc/nfc_user.cpp2
-rw-r--r--src/core/hle/service/nfp/nfp_user.cpp6
-rw-r--r--src/core/hle/service/ns/iplatform_service_manager.cpp11
-rw-r--r--src/core/hle/service/set/set.cpp2
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
275private: 275private:
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
85void GetAvailableLanguageCodesImpl(Kernel::HLERequestContext& ctx, std::size_t max_entries) { 85void 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);