aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjhorv <38920027+jhorv@users.noreply.github.com>2024-07-15 18:21:53 -0400
committerGitHub <noreply@github.com>2024-07-15 19:21:53 -0300
commita6dbb2ad2b7e1e0ed704dc33066f832e2cdd6a4a (patch)
treed9b1384680416cde0a5ee9addf741bc43c5a73bf
parent595e514f1804ee2da31ff1b24c2facfc120386d1 (diff)
replace ByteMemoryPool usage in Ryujinx.HLE (#6953)1.1.1347
-rw-r--r--src/Ryujinx.HLE/HOS/Services/ServerBase.cs4
-rw-r--r--src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/IHOSBinderDriver.cs4
-rw-r--r--src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/Parcel.cs7
3 files changed, 7 insertions, 8 deletions
diff --git a/src/Ryujinx.HLE/HOS/Services/ServerBase.cs b/src/Ryujinx.HLE/HOS/Services/ServerBase.cs
index 5e18d798..f67699b9 100644
--- a/src/Ryujinx.HLE/HOS/Services/ServerBase.cs
+++ b/src/Ryujinx.HLE/HOS/Services/ServerBase.cs
@@ -474,9 +474,9 @@ namespace Ryujinx.HLE.HOS.Services
{
const int MessageSize = 0x100;
- using IMemoryOwner<byte> reqDataOwner = ByteMemoryPool.Rent(MessageSize);
+ using SpanOwner<byte> reqDataOwner = SpanOwner<byte>.Rent(MessageSize);
- Span<byte> reqDataSpan = reqDataOwner.Memory.Span;
+ Span<byte> reqDataSpan = reqDataOwner.Span;
_selfProcess.CpuMemory.Read(_selfThread.TlsAddress, reqDataSpan);
diff --git a/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/IHOSBinderDriver.cs b/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/IHOSBinderDriver.cs
index 7cb6763b..2ffa961c 100644
--- a/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/IHOSBinderDriver.cs
+++ b/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/IHOSBinderDriver.cs
@@ -85,9 +85,9 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
ReadOnlySpan<byte> inputParcel = context.Memory.GetSpan(dataPos, (int)dataSize);
- using IMemoryOwner<byte> outputParcelOwner = ByteMemoryPool.RentCleared(replySize);
+ using SpanOwner<byte> outputParcelOwner = SpanOwner<byte>.RentCleared(checked((int)replySize));
- Span<byte> outputParcel = outputParcelOwner.Memory.Span;
+ Span<byte> outputParcel = outputParcelOwner.Span;
ResultCode result = OnTransact(binderId, code, flags, inputParcel, outputParcel);
diff --git a/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/Parcel.cs b/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/Parcel.cs
index c6cd60d0..2ca0e1aa 100644
--- a/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/Parcel.cs
+++ b/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/Parcel.cs
@@ -3,7 +3,6 @@ using Ryujinx.Common.Memory;
using Ryujinx.Common.Utilities;
using Ryujinx.HLE.HOS.Services.SurfaceFlinger.Types;
using System;
-using System.Buffers;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
@@ -13,7 +12,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
{
sealed class Parcel : IDisposable
{
- private readonly IMemoryOwner<byte> _rawDataOwner;
+ private readonly MemoryOwner<byte> _rawDataOwner;
private Span<byte> Raw => _rawDataOwner.Memory.Span;
@@ -30,7 +29,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
public Parcel(ReadOnlySpan<byte> data)
{
- _rawDataOwner = ByteMemoryPool.RentCopy(data);
+ _rawDataOwner = MemoryOwner<byte>.RentCopy(data);
_payloadPosition = 0;
_objectPosition = 0;
@@ -40,7 +39,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
{
uint headerSize = (uint)Unsafe.SizeOf<ParcelHeader>();
- _rawDataOwner = ByteMemoryPool.RentCleared(BitUtils.AlignUp<uint>(headerSize + payloadSize + objectsSize, 4));
+ _rawDataOwner = MemoryOwner<byte>.RentCleared(checked((int)BitUtils.AlignUp<uint>(headerSize + payloadSize + objectsSize, 4)));
Header.PayloadSize = payloadSize;
Header.ObjectsSize = objectsSize;