From 5e21a09fd17713db67d0b32d49ba23ee682d7c19 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Fri, 22 Sep 2023 11:59:46 -0400 Subject: [PATCH] Make header reading consistent --- MSZIP/DeflateDecompressor.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/MSZIP/DeflateDecompressor.cs b/MSZIP/DeflateDecompressor.cs index 8d62244..d858a47 100644 --- a/MSZIP/DeflateDecompressor.cs +++ b/MSZIP/DeflateDecompressor.cs @@ -118,9 +118,10 @@ namespace SabreTools.Compression.MSZIP /// /// Read a FixedHuffmanCompressedBlockHeader from the input stream /// - private FixedHuffmanCompressedBlockHeader ReadFixedHuffmanCompressedBlockHeader() + private (FixedHuffmanCompressedBlockHeader, uint, uint) ReadFixedHuffmanCompressedBlockHeader() { - return new FixedHuffmanCompressedBlockHeader(); + // Nothing needs to be read, all values are fixed + return (new FixedHuffmanCompressedBlockHeader(), 288, 30); } /// @@ -190,11 +191,11 @@ namespace SabreTools.Compression.MSZIP var bytes = new List(); // Get the fixed huffman header - var header = ReadFixedHuffmanCompressedBlockHeader(); + (var header, uint numLiteral, uint numDistance) = ReadFixedHuffmanCompressedBlockHeader(); // Make the literal and distance trees - HuffmanDecoder literalTree = new HuffmanDecoder(header.LiteralLengths, 288); - HuffmanDecoder distanceTree = new HuffmanDecoder(header.DistanceCodes, 30); + HuffmanDecoder literalTree = new HuffmanDecoder(header.LiteralLengths, numLiteral); + HuffmanDecoder distanceTree = new HuffmanDecoder(header.DistanceCodes, numDistance); // Now loop and decode return ReadHuffmanBlock(literalTree, distanceTree);