diff --git a/Sources/BZip2.swift b/Sources/BZip2.swift index 992b9651..aeb61ed3 100644 --- a/Sources/BZip2.swift +++ b/Sources/BZip2.swift @@ -72,14 +72,14 @@ public class BZip2: DecompressionAlgorithm { private static func decode(_ bitReader: BitReader) throws -> [UInt8] { let isRandomized = bitReader.bit() - guard isRandomized != 1 else { throw BZip2Error.randomizedBlock } + guard isRandomized == 0 else { throw BZip2Error.randomizedBlock } var pointer = bitReader.intFromBits(count: 24) func computeUsed() -> [Bool] { let huffmanUsedMap = bitReader.intFromBits(count: 16) var mapMask = 1 << 15 - var used: [Bool] = [] + var used = [Bool]() while mapMask > 0 { if huffmanUsedMap & mapMask > 0 { let huffmanUsedBitmap = bitReader.intFromBits(count: 16) @@ -106,8 +106,8 @@ public class BZip2: DecompressionAlgorithm { func computeSelectorsList() throws -> [Int] { let selectorsUsed = bitReader.intFromBits(count: 15) - var mtf: [Int] = Array(0..= 0 && length <= 20 else { throw BZip2Error.wrongHuffmanLengthCode } while bitReader.bit() > 0 { @@ -140,8 +140,8 @@ public class BZip2: DecompressionAlgorithm { } lengths.append(length) } - let codes = DecodingHuffmanTree(lengthsToOrder: lengths, bitReader) - tables.append(codes) + let table = DecodingHuffmanTree(lengthsToOrder: lengths, bitReader) + tables.append(table) } return tables diff --git a/Sources/BZip2Error.swift b/Sources/BZip2Error.swift index 9092206e..c1e5fe91 100644 --- a/Sources/BZip2Error.swift +++ b/Sources/BZip2Error.swift @@ -12,6 +12,7 @@ import Foundation public enum BZip2Error: Error { /// 'Magic' number is not 0x425a. case wrongMagic + // TODO: Rename to `wrongVersion` in 4.0. /// Compression method is not type 'h' (not Huffman). case wrongCompressionMethod /// Unsupported block size (not from '0' to '9').