@@ -124,7 +124,7 @@ namespace Ryujinx.Common.Memory
if (array is not null)
{
- ArrayPool<T>.Shared.Return(array);
+ ArrayPool<T>.Shared.Return(array, RuntimeHelpers.IsReferenceOrContainsReferences<T>());
}
@@ -108,7 +108,7 @@ namespace Ryujinx.Common.Memory
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void Dispose()
- ArrayPool<T>.Shared.Return(_array);
+ ArrayPool<T>.Shared.Return(_array, RuntimeHelpers.IsReferenceOrContainsReferences<T>());
@@ -616,7 +616,7 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
- ArrayPool<KSynchronizationObject>.Shared.Return(syncObjsArray);
+ ArrayPool<KSynchronizationObject>.Shared.Return(syncObjsArray, true);
return result;
@@ -104,7 +104,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
- ArrayPool<LinkedListNode<KThread>>.Shared.Return(syncNodesArray);
+ ArrayPool<LinkedListNode<KThread>>.Shared.Return(syncNodesArray, true);
_context.CriticalSection.Leave();