From 5a2c5d27dbdaccb635c7d28a2814c68255f06bf4 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Thu, 24 Oct 2019 20:47:47 +1100 Subject: [PATCH] Introduce a few more constants --- .../Formats/Jpeg/Components/Decoder/HuffmanScanBuffer.cs | 6 +++--- src/ImageSharp/Formats/Jpeg/JpegConstants.cs | 9 +++++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/Components/Decoder/HuffmanScanBuffer.cs b/src/ImageSharp/Formats/Jpeg/Components/Decoder/HuffmanScanBuffer.cs index cabd26dc64..a2b784c479 100644 --- a/src/ImageSharp/Formats/Jpeg/Components/Decoder/HuffmanScanBuffer.cs +++ b/src/ImageSharp/Formats/Jpeg/Components/Decoder/HuffmanScanBuffer.cs @@ -51,7 +51,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder [MethodImpl(InliningOptions.ShortMethod)] public void CheckBits() { - if (this.remainingBits < 16) + if (this.remainingBits < JpegConstants.Huffman.MinBits) { this.FillBuffer(); } @@ -85,8 +85,8 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder { // Attempt to load at least the minimum number of required bits into the buffer. // We fail to do so only if we hit a marker or reach the end of the input stream. - this.remainingBits += JpegConstants.Huffman.MinBits; - this.data = (this.data << JpegConstants.Huffman.MinBits) | this.GetBytes(); + this.remainingBits += JpegConstants.Huffman.FetchBits; + this.data = (this.data << JpegConstants.Huffman.FetchBits) | this.GetBytes(); } [MethodImpl(InliningOptions.ShortMethod)] diff --git a/src/ImageSharp/Formats/Jpeg/JpegConstants.cs b/src/ImageSharp/Formats/Jpeg/JpegConstants.cs index 53f185f01e..6268f00db4 100644 --- a/src/ImageSharp/Formats/Jpeg/JpegConstants.cs +++ b/src/ImageSharp/Formats/Jpeg/JpegConstants.cs @@ -251,9 +251,14 @@ namespace SixLabors.ImageSharp.Formats.Jpeg public const int RegisterSize = 64; /// - /// The minimum number of bits required by the . + /// The number of bits to fetch when filling the buffer. /// - public const int MinBits = 48; + public const int FetchBits = 48; + + /// + /// The minimum number of bits allowed before by the before fetching. + /// + public const int MinBits = RegisterSize - FetchBits; /// /// If the next Huffman code is no more than this number of bits, we can obtain its length