diff --git a/src/ImageSharp/Formats/Webp/Lossless/Vp8LBackwardRefs.cs b/src/ImageSharp/Formats/Webp/Lossless/Vp8LBackwardRefs.cs index 3b7dc99ff..634fac5e8 100644 --- a/src/ImageSharp/Formats/Webp/Lossless/Vp8LBackwardRefs.cs +++ b/src/ImageSharp/Formats/Webp/Lossless/Vp8LBackwardRefs.cs @@ -8,33 +8,21 @@ namespace SixLabors.ImageSharp.Formats.Webp.Lossless; internal class Vp8LBackwardRefs : IDisposable { - private readonly IMemoryOwner owner; - private readonly MemoryHandle handle; + private readonly IMemoryOwner refs; private int count; public Vp8LBackwardRefs(MemoryAllocator memoryAllocator, int pixels) { - this.owner = memoryAllocator.Allocate(pixels); - this.handle = this.owner.Memory.Pin(); + this.refs = memoryAllocator.Allocate(pixels); this.count = 0; } - public void Add(PixOrCopy pixOrCopy) - { - unsafe - { - ((PixOrCopy*)this.handle.Pointer)[this.count++] = pixOrCopy; - } - } + public void Add(PixOrCopy pixOrCopy) => this.refs.Memory.Span[this.count++] = pixOrCopy; public void Clear() => this.count = 0; - public Span.Enumerator GetEnumerator() => this.owner.Slice(0, this.count).GetEnumerator(); + public Span.Enumerator GetEnumerator() => this.refs.Slice(0, this.count).GetEnumerator(); /// - public void Dispose() - { - this.handle.Dispose(); - this.owner.Dispose(); - } + public void Dispose() => this.refs.Dispose(); }