From e6c78c2e7d2ce9c3668d68f953a0bdb602ebdeeb Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Wed, 22 Jul 2020 08:22:56 +0100 Subject: [PATCH] Update StreamExtensions.cs --- .../Common/Extensions/StreamExtensions.cs | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/ImageSharp/Common/Extensions/StreamExtensions.cs b/src/ImageSharp/Common/Extensions/StreamExtensions.cs index d84780c0d..f2367d488 100644 --- a/src/ImageSharp/Common/Extensions/StreamExtensions.cs +++ b/src/ImageSharp/Common/Extensions/StreamExtensions.cs @@ -48,23 +48,28 @@ namespace SixLabors.ImageSharp if (stream.CanSeek) { - stream.Seek(count, SeekOrigin.Current); // Position += count; + stream.Seek(count, SeekOrigin.Current); return; } - var buffer = ArrayPool.Shared.Rent(count); - while (count > 0) + byte[] buffer = ArrayPool.Shared.Rent(count); + try { - int bytesRead = stream.Read(buffer, 0, count); - if (bytesRead == 0) + while (count > 0) { - break; - } + int bytesRead = stream.Read(buffer, 0, count); + if (bytesRead == 0) + { + break; + } - count -= bytesRead; + count -= bytesRead; + } + } + finally + { + ArrayPool.Shared.Return(buffer); } - - ArrayPool.Shared.Return(buffer); } public static void Read(this Stream stream, IManagedByteBuffer buffer)