diff --git a/src/ImageSharp/Memory/ByteMemoryManager{T}.cs b/src/ImageSharp/Memory/ByteMemoryManager{T}.cs index 924230fc8..70d1b1c30 100644 --- a/src/ImageSharp/Memory/ByteMemoryManager{T}.cs +++ b/src/ImageSharp/Memory/ByteMemoryManager{T}.cs @@ -42,7 +42,7 @@ namespace SixLabors.ImageSharp.Memory /// public override MemoryHandle Pin(int elementIndex = 0) { - return this.memory.Pin(); + return this.memory.Slice(elementIndex).Pin(); } /// diff --git a/tests/ImageSharp.Tests/Image/ImageTests.WrapMemory.cs b/tests/ImageSharp.Tests/Image/ImageTests.WrapMemory.cs index c0cd3f56a..06ee069c6 100644 --- a/tests/ImageSharp.Tests/Image/ImageTests.WrapMemory.cs +++ b/tests/ImageSharp.Tests/Image/ImageTests.WrapMemory.cs @@ -99,25 +99,13 @@ namespace SixLabors.ImageSharp.Tests /// public override Span GetSpan() { - if (MemoryMarshal.TryGetArray(this.memory, out ArraySegment arraySegment)) - { - return MemoryMarshal.Cast(arraySegment.AsSpan()); - } - - if (MemoryMarshal.TryGetMemoryManager>(this.memory, out MemoryManager memoryManager)) - { - return MemoryMarshal.Cast(memoryManager.GetSpan()); - } - - ThrowHelper.ThrowArgumentException("The input Memory instance was not valid.", nameof(this.memory)); - - return default; + return MemoryMarshal.Cast(this.memory.Span); } /// public override MemoryHandle Pin(int elementIndex = 0) { - return this.memory.Pin(); + return this.memory.Slice(elementIndex).Pin(); } ///