private void Init(byte[] inputBuffer, int startIndex) { this.lzmaState = new LzmaState(); this.rangeDecoder.Init(inputBuffer, startIndex); for (uint index1 = 0; index1 < 12U; ++index1) { for (uint index2 = 0; index2 <= this.positionStateMask; ++index2) { uint num = (index1 << 4) + index2; this.matchDecoders[(IntPtr)num].Init(); this.repeaterLongDecoders[(IntPtr)num].Init(); } this.repeaterDecoders[(IntPtr)index1].Init(); this.repeaterG0Decoders[(IntPtr)index1].Init(); this.repeaterG1Decoders[(IntPtr)index1].Init(); this.repeaterG2Decoders[(IntPtr)index1].Init(); } this.literalDecoder.Init(); for (uint index = 0; index < 4U; ++index) { this.positionSlotDecoder[(IntPtr)index].Init(); } for (uint index = 0; index < 114U; ++index) { this.positionDecoders[(IntPtr)index].Init(); } this.lengthDecoder.Init(); this.repeaterLengthDecoder.Init(); this.positionAlignDecoder.Init(); }
private void DecompressPosSlotDecoder() { this.positionSlot = this.positionSlotDecoder[(IntPtr)LzmaState.GetLenToPosState(this.decodedLength)].Decode(this.rangeDecoder); if (this.rangeDecoder.InputRequired) { return; } this.decompressState = LzmaDecompressor.LzmaDecompressorState.PosSlotProcess; }