From 0b8cfb19d9dce75de8ff446c878ae1a5b9d889db Mon Sep 17 00:00:00 2001 From: Stefan Nikolei Date: Wed, 4 Jun 2025 16:53:41 +0200 Subject: [PATCH 1/2] Fix Typo and Offset * While checking ChunkedMemoryStream i saw differences in the Seek method. --- src/ImageSharp/IO/BufferedReadStream.cs | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/ImageSharp/IO/BufferedReadStream.cs b/src/ImageSharp/IO/BufferedReadStream.cs index 1aa53d65e..59e8b0d02 100644 --- a/src/ImageSharp/IO/BufferedReadStream.cs +++ b/src/ImageSharp/IO/BufferedReadStream.cs @@ -69,7 +69,7 @@ internal sealed class BufferedReadStream : Stream } /// - /// Gets the number indicating the EOF hits occured while reading from this instance. + /// Gets the number indicating the EOF hits occurred while reading from this instance. /// public int EofHitCount { get; private set; } @@ -213,20 +213,13 @@ internal sealed class BufferedReadStream : Stream [MethodImpl(MethodImplOptions.AggressiveInlining)] public override long Seek(long offset, SeekOrigin origin) { - switch (origin) + this.Position = origin switch { - case SeekOrigin.Begin: - this.Position = offset; - break; - - case SeekOrigin.Current: - this.Position += offset; - break; - - case SeekOrigin.End: - this.Position = this.Length - offset; - break; - } + SeekOrigin.Begin => (int)offset, + SeekOrigin.Current => (int)(this.Position + offset), + SeekOrigin.End => (int)(this.Length + offset), + _ => throw new ArgumentOutOfRangeException(nameof(offset)), + }; return this.readerPosition; } From ddd4f8c3ec11c024451e8dbdcb6a669fb592300e Mon Sep 17 00:00:00 2001 From: Stefan Nikolei Date: Thu, 5 Jun 2025 09:38:43 +0200 Subject: [PATCH 2/2] Remove casting to int --- src/ImageSharp/IO/BufferedReadStream.cs | 6 +++--- src/ImageSharp/IO/ChunkedMemoryStream.cs | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/ImageSharp/IO/BufferedReadStream.cs b/src/ImageSharp/IO/BufferedReadStream.cs index 59e8b0d02..8080aab87 100644 --- a/src/ImageSharp/IO/BufferedReadStream.cs +++ b/src/ImageSharp/IO/BufferedReadStream.cs @@ -215,9 +215,9 @@ internal sealed class BufferedReadStream : Stream { this.Position = origin switch { - SeekOrigin.Begin => (int)offset, - SeekOrigin.Current => (int)(this.Position + offset), - SeekOrigin.End => (int)(this.Length + offset), + SeekOrigin.Begin => offset, + SeekOrigin.Current => this.Position + offset, + SeekOrigin.End => this.Length + offset, _ => throw new ArgumentOutOfRangeException(nameof(offset)), }; diff --git a/src/ImageSharp/IO/ChunkedMemoryStream.cs b/src/ImageSharp/IO/ChunkedMemoryStream.cs index 760d1d334..a5a401144 100644 --- a/src/ImageSharp/IO/ChunkedMemoryStream.cs +++ b/src/ImageSharp/IO/ChunkedMemoryStream.cs @@ -76,9 +76,9 @@ internal sealed class ChunkedMemoryStream : Stream this.Position = origin switch { - SeekOrigin.Begin => (int)offset, - SeekOrigin.Current => (int)(this.Position + offset), - SeekOrigin.End => (int)(this.Length + offset), + SeekOrigin.Begin => offset, + SeekOrigin.Current => this.Position + offset, + SeekOrigin.End => this.Length + offset, _ => throw new ArgumentOutOfRangeException(nameof(offset)), };