From eaf336e2f06c89acaa817df3fbe425ad1470002d Mon Sep 17 00:00:00 2001 From: Timofey Solomko Date: Sat, 24 Dec 2016 23:37:07 +0300 Subject: [PATCH] Now the state of lzmaDecoder is reset entirely. --- Sources/LZMADecoder.swift | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/Sources/LZMADecoder.swift b/Sources/LZMADecoder.swift index 4836d928..a25e3b43 100644 --- a/Sources/LZMADecoder.swift +++ b/Sources/LZMADecoder.swift @@ -166,8 +166,7 @@ final class LZMADecoder { self.outWindow = LZMAOutWindow(dictSize: dictSize) } - func resetState() throws { - + func resetState() { self.state = 0 self.rep0 = 0 @@ -175,18 +174,30 @@ final class LZMADecoder { self.rep2 = 0 self.rep3 = 0 + self.isMatch = Array(repeating: LZMAConstants.probInitValue, + count: LZMAConstants.numStates << LZMAConstants.numPosBitsMax) + self.isRep = Array(repeating: LZMAConstants.probInitValue, + count: LZMAConstants.numStates) + self.isRepG0 = Array(repeating: LZMAConstants.probInitValue, + count: LZMAConstants.numStates) + self.isRepG1 = Array(repeating: LZMAConstants.probInitValue, + count: LZMAConstants.numStates) + self.isRepG2 = Array(repeating: LZMAConstants.probInitValue, + count: LZMAConstants.numStates) + self.isRep0Long = Array(repeating: LZMAConstants.probInitValue, + count: LZMAConstants.numStates << LZMAConstants.numPosBitsMax) + self.literalProbs = Array(repeating: Array(repeating: LZMAConstants.probInitValue, count: 0x300), count: 1 << (lc + lp).toInt()) + self.posSlotDecoder = [] for _ in 0..