summaryrefslogtreecommitdiff
path: root/src/core/hle/service/es
diff options
context:
space:
mode:
authorGravatar Lioncash2022-11-23 13:25:14 -0500
committerGravatar Lioncash2022-11-23 13:43:20 -0500
commit97f273e94e83a679f42faa9c81916a1c058112e1 (patch)
treee2a2777ae3bec31b544516988fae36e8080150ff /src/core/hle/service/es
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
Diffstat (limited to 'src/core/hle/service/es')
-rw-r--r--src/core/hle/service/es/es.cpp27
1 files changed, 12 insertions, 15 deletions
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) {