From 74aa7b20be5ef924f3e8cbde699fcf4f8431f750 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Sat, 12 Dec 2020 00:06:20 -0300 Subject: Rewrite size for fixed size buffers (#1808) --- .../Bcat/ServiceCreator/IDeliveryCacheProgressService.cs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'Ryujinx.HLE/HOS/Services/Bcat/ServiceCreator') diff --git a/Ryujinx.HLE/HOS/Services/Bcat/ServiceCreator/IDeliveryCacheProgressService.cs b/Ryujinx.HLE/HOS/Services/Bcat/ServiceCreator/IDeliveryCacheProgressService.cs index 54b1a58a..741f3363 100644 --- a/Ryujinx.HLE/HOS/Services/Bcat/ServiceCreator/IDeliveryCacheProgressService.cs +++ b/Ryujinx.HLE/HOS/Services/Bcat/ServiceCreator/IDeliveryCacheProgressService.cs @@ -1,5 +1,6 @@ using Ryujinx.Common; using Ryujinx.Common.Logging; +using Ryujinx.Cpu; using Ryujinx.HLE.HOS.Ipc; using Ryujinx.HLE.HOS.Kernel.Common; using Ryujinx.HLE.HOS.Kernel.Threading; @@ -48,21 +49,17 @@ namespace Ryujinx.HLE.HOS.Services.Bcat.ServiceCreator Result = 0 }; - WriteDeliveryCacheProgressImpl(context, context.Request.RecvListBuff[0], deliveryCacheProgress); + long dcpSize = WriteDeliveryCacheProgressImpl(context, context.Request.RecvListBuff[0], deliveryCacheProgress); + context.Response.PtrBuff[0] = context.Response.PtrBuff[0].WithSize(dcpSize); Logger.Stub?.PrintStub(LogClass.ServiceBcat); return ResultCode.Success; } - private void WriteDeliveryCacheProgressImpl(ServiceCtx context, IpcRecvListBuffDesc ipcDesc, DeliveryCacheProgressImpl deliveryCacheProgress) + private long WriteDeliveryCacheProgressImpl(ServiceCtx context, IpcRecvListBuffDesc ipcDesc, DeliveryCacheProgressImpl deliveryCacheProgress) { - using (MemoryStream memory = new MemoryStream((int)ipcDesc.Size)) - using (BinaryWriter bufferWriter = new BinaryWriter(memory)) - { - bufferWriter.WriteStruct(deliveryCacheProgress); - context.Memory.Write((ulong)ipcDesc.Position, memory.ToArray()); - } + return MemoryHelper.Write(context.Memory, ipcDesc.Position, deliveryCacheProgress); } } } \ No newline at end of file -- cgit v1.2.3