Browse Source

Fix bug in Pin() method, minor code tweaks

js/color-alpha-handling
Sergio Pedri 6 years ago
parent
commit
b9dc71d375
  1. 2
      src/ImageSharp/Memory/ByteMemoryManager{T}.cs
  2. 16
      tests/ImageSharp.Tests/Image/ImageTests.WrapMemory.cs

2
src/ImageSharp/Memory/ByteMemoryManager{T}.cs

@ -42,7 +42,7 @@ namespace SixLabors.ImageSharp.Memory
/// <inheritdoc/>
public override MemoryHandle Pin(int elementIndex = 0)
{
return this.memory.Pin();
return this.memory.Slice(elementIndex).Pin();
}
/// <inheritdoc/>

16
tests/ImageSharp.Tests/Image/ImageTests.WrapMemory.cs

@ -99,25 +99,13 @@ namespace SixLabors.ImageSharp.Tests
/// <inheritdoc/>
public override Span<TTo> GetSpan()
{
if (MemoryMarshal.TryGetArray(this.memory, out ArraySegment<TFrom> arraySegment))
{
return MemoryMarshal.Cast<TFrom, TTo>(arraySegment.AsSpan());
}
if (MemoryMarshal.TryGetMemoryManager<TFrom, MemoryManager<TFrom>>(this.memory, out MemoryManager<TFrom> memoryManager))
{
return MemoryMarshal.Cast<TFrom, TTo>(memoryManager.GetSpan());
}
ThrowHelper.ThrowArgumentException("The input Memory<byte> instance was not valid.", nameof(this.memory));
return default;
return MemoryMarshal.Cast<TFrom, TTo>(this.memory.Span);
}
/// <inheritdoc/>
public override MemoryHandle Pin(int elementIndex = 0)
{
return this.memory.Pin();
return this.memory.Slice(elementIndex).Pin();
}
/// <inheritdoc/>

Loading…
Cancel
Save