Browse Source

Update StreamExtensions.cs

pull/1269/head
James Jackson-South 6 years ago
parent
commit
e6c78c2e7d
  1. 11
      src/ImageSharp/Common/Extensions/StreamExtensions.cs

11
src/ImageSharp/Common/Extensions/StreamExtensions.cs

@ -48,11 +48,13 @@ namespace SixLabors.ImageSharp
if (stream.CanSeek) if (stream.CanSeek)
{ {
stream.Seek(count, SeekOrigin.Current); // Position += count; stream.Seek(count, SeekOrigin.Current);
return; return;
} }
var buffer = ArrayPool<byte>.Shared.Rent(count); byte[] buffer = ArrayPool<byte>.Shared.Rent(count);
try
{
while (count > 0) while (count > 0)
{ {
int bytesRead = stream.Read(buffer, 0, count); int bytesRead = stream.Read(buffer, 0, count);
@ -63,9 +65,12 @@ namespace SixLabors.ImageSharp
count -= bytesRead; count -= bytesRead;
} }
}
finally
{
ArrayPool<byte>.Shared.Return(buffer); ArrayPool<byte>.Shared.Return(buffer);
} }
}
public static void Read(this Stream stream, IManagedByteBuffer buffer) public static void Read(this Stream stream, IManagedByteBuffer buffer)
=> stream.Read(buffer.Array, 0, buffer.Length()); => stream.Read(buffer.Array, 0, buffer.Length());

Loading…
Cancel
Save