From bbf85c1bb2f200062d562c7e24ef088c7fe55f4d Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Fri, 17 Apr 2020 22:21:34 +0100 Subject: [PATCH] Update BufferedReadStream.cs --- src/ImageSharp/IO/BufferedReadStream.cs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/ImageSharp/IO/BufferedReadStream.cs b/src/ImageSharp/IO/BufferedReadStream.cs index 776fb123f..ea26cf347 100644 --- a/src/ImageSharp/IO/BufferedReadStream.cs +++ b/src/ImageSharp/IO/BufferedReadStream.cs @@ -92,6 +92,7 @@ namespace SixLabors.ImageSharp.IO } else { + // TODO: Throw. this.readerPosition = v; this.stream.Seek(value, SeekOrigin.Begin); this.readBufferIndex = BufferLength; @@ -166,13 +167,19 @@ namespace SixLabors.ImageSharp.IO [MethodImpl(MethodImplOptions.AggressiveInlining)] public override long Seek(long offset, SeekOrigin origin) { - if (origin == SeekOrigin.Begin) + switch (origin) { - this.Position = offset; - } - else - { - this.Position += offset; + case SeekOrigin.Begin: + this.Position = offset; + break; + + case SeekOrigin.Current: + this.Position += offset; + break; + + case SeekOrigin.End: + this.Position = this.Length - offset; + break; } return this.readerPosition;