Browse Source

Remove unnecessary indirection in ByteMemoryManager<T>

js/color-alpha-handling
Sergio Pedri 6 years ago
parent
commit
8f4417cf61
  1. 16
      src/ImageSharp/Memory/ByteMemoryManager{T}.cs

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

@ -36,21 +36,7 @@ namespace SixLabors.ImageSharp.Memory
/// <inheritdoc/>
public override Span<T> GetSpan()
{
if (MemoryMarshal.TryGetArray(this.memory, out ArraySegment<byte> arraySegment))
{
return MemoryMarshal.Cast<byte, T>(arraySegment.AsSpan());
}
if (MemoryMarshal.TryGetMemoryManager<byte, MemoryManager<byte>>(this.memory, out MemoryManager<byte> memoryManager))
{
return MemoryMarshal.Cast<byte, T>(memoryManager.GetSpan());
}
// This should never be reached, as Memory<T> can currently only be wrapping
// either a byte[] array or a MemoryManager<byte> instance in this case.
ThrowHelper.ThrowArgumentException("The input Memory<byte> instance was not valid.", nameof(this.memory));
return default;
return MemoryMarshal.Cast<byte, T>(this.memory.Span);
}
/// <inheritdoc/>

Loading…
Cancel
Save