diff --git a/src/ImageSharp/Memory/Allocators/Internals/SharedArrayPoolBuffer{T}.cs b/src/ImageSharp/Memory/Allocators/Internals/SharedArrayPoolBuffer{T}.cs index c4fed8426d..048cb74333 100644 --- a/src/ImageSharp/Memory/Allocators/Internals/SharedArrayPoolBuffer{T}.cs +++ b/src/ImageSharp/Memory/Allocators/Internals/SharedArrayPoolBuffer{T}.cs @@ -20,7 +20,9 @@ namespace SixLabors.ImageSharp.Memory.Internals this.array = ArrayPool.Shared.Rent(this.lengthInBytes); } +#pragma warning disable CA2015 // Adding a finalizer to a type derived from MemoryManager may permit memory to be freed while it is still in use by a Span ~SharedArrayPoolBuffer() => this.Dispose(false); +#pragma warning restore protected override void Dispose(bool disposing) { diff --git a/src/ImageSharp/Memory/Allocators/Internals/UniformUnmanagedMemoryPool.Buffer{T}.cs b/src/ImageSharp/Memory/Allocators/Internals/UniformUnmanagedMemoryPool.Buffer{T}.cs index c315aa5484..d7bb5413db 100644 --- a/src/ImageSharp/Memory/Allocators/Internals/UniformUnmanagedMemoryPool.Buffer{T}.cs +++ b/src/ImageSharp/Memory/Allocators/Internals/UniformUnmanagedMemoryPool.Buffer{T}.cs @@ -71,7 +71,9 @@ namespace SixLabors.ImageSharp.Memory.Internals bufferHandle.AssignedToNewOwner(); } +#pragma warning disable CA2015 // Adding a finalizer to a type derived from MemoryManager may permit memory to be freed while it is still in use by a Span ~FinalizableBuffer() => this.Dispose(false); +#pragma warning restore protected override void Dispose(bool disposing) {