Browse Source

Update StreamExtensions.cs

pull/1574/head
James Jackson-South 6 years ago
parent
commit
af49dc74f1
  1. 25
      src/ImageSharp/Common/Extensions/StreamExtensions.cs

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

@ -48,23 +48,28 @@ 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);
while (count > 0) try
{ {
int bytesRead = stream.Read(buffer, 0, count); while (count > 0)
if (bytesRead == 0)
{ {
break; int bytesRead = stream.Read(buffer, 0, count);
} if (bytesRead == 0)
{
break;
}
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)

Loading…
Cancel
Save