From 4efd49295a227ac57509db045774c07ee4283825 Mon Sep 17 00:00:00 2001 From: Stefan Nikolei Date: Wed, 25 Jan 2023 17:56:21 +0100 Subject: [PATCH] Resolve PR issues --- .../Memory/Allocators/Internals/SharedArrayPoolBuffer{T}.cs | 5 +++-- .../Memory/DiscontiguousBuffers/MemoryGroup{T}.Consumed.cs | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ImageSharp/Memory/Allocators/Internals/SharedArrayPoolBuffer{T}.cs b/src/ImageSharp/Memory/Allocators/Internals/SharedArrayPoolBuffer{T}.cs index 609bb34a56..f9434ee941 100644 --- a/src/ImageSharp/Memory/Allocators/Internals/SharedArrayPoolBuffer{T}.cs +++ b/src/ImageSharp/Memory/Allocators/Internals/SharedArrayPoolBuffer{T}.cs @@ -67,7 +67,7 @@ internal class SharedArrayPoolBuffer : ManagedBufferBase, IRefCounted private sealed class LifetimeGuard : RefCountedMemoryLifetimeGuard { - private byte[] array; + private byte[]? array; public LifetimeGuard(byte[] array) => this.array = array; @@ -78,7 +78,8 @@ internal class SharedArrayPoolBuffer : ManagedBufferBase, IRefCounted // This is not ideal, but subsequent leaks will end up returning arrays to per-cpu buckets, // meaning likely a different bucket than it was rented from, // but this is PROBABLY better than not returning the arrays at all. - ArrayPool.Shared.Return(this.array); + ArrayPool.Shared.Return(this.array!); + this.array = null; } } } diff --git a/src/ImageSharp/Memory/DiscontiguousBuffers/MemoryGroup{T}.Consumed.cs b/src/ImageSharp/Memory/DiscontiguousBuffers/MemoryGroup{T}.Consumed.cs index 03a2fb78f7..950e2a019e 100644 --- a/src/ImageSharp/Memory/DiscontiguousBuffers/MemoryGroup{T}.Consumed.cs +++ b/src/ImageSharp/Memory/DiscontiguousBuffers/MemoryGroup{T}.Consumed.cs @@ -48,6 +48,6 @@ internal abstract partial class MemoryGroup return ((IList>)this.source).GetEnumerator(); } - public override void Dispose() => this.View?.Invalidate(); + public override void Dispose() => this.View.Invalidate(); } }