| Index: third_party/lzma/v4_65/files/CS/7zip/Compress/RangeCoder/RangeCoder.cs
|
| diff --git a/third_party/lzma/v4_65/files/CS/7zip/Compress/RangeCoder/RangeCoder.cs b/third_party/lzma/v4_65/files/CS/7zip/Compress/RangeCoder/RangeCoder.cs
|
| deleted file mode 100644
|
| index 949c6bbe662dedfb054c61c7c0d787c8f0abcd38..0000000000000000000000000000000000000000
|
| --- a/third_party/lzma/v4_65/files/CS/7zip/Compress/RangeCoder/RangeCoder.cs
|
| +++ /dev/null
|
| @@ -1,234 +0,0 @@
|
| -using System;
|
| -
|
| -namespace SevenZip.Compression.RangeCoder
|
| -{
|
| - class Encoder
|
| - {
|
| - public const uint kTopValue = (1 << 24);
|
| -
|
| - System.IO.Stream Stream;
|
| -
|
| - public UInt64 Low;
|
| - public uint Range;
|
| - uint _cacheSize;
|
| - byte _cache;
|
| -
|
| - long StartPosition;
|
| -
|
| - public void SetStream(System.IO.Stream stream)
|
| - {
|
| - Stream = stream;
|
| - }
|
| -
|
| - public void ReleaseStream()
|
| - {
|
| - Stream = null;
|
| - }
|
| -
|
| - public void Init()
|
| - {
|
| - StartPosition = Stream.Position;
|
| -
|
| - Low = 0;
|
| - Range = 0xFFFFFFFF;
|
| - _cacheSize = 1;
|
| - _cache = 0;
|
| - }
|
| -
|
| - public void FlushData()
|
| - {
|
| - for (int i = 0; i < 5; i++)
|
| - ShiftLow();
|
| - }
|
| -
|
| - public void FlushStream()
|
| - {
|
| - Stream.Flush();
|
| - }
|
| -
|
| - public void CloseStream()
|
| - {
|
| - Stream.Close();
|
| - }
|
| -
|
| - public void Encode(uint start, uint size, uint total)
|
| - {
|
| - Low += start * (Range /= total);
|
| - Range *= size;
|
| - while (Range < kTopValue)
|
| - {
|
| - Range <<= 8;
|
| - ShiftLow();
|
| - }
|
| - }
|
| -
|
| - public void ShiftLow()
|
| - {
|
| - if ((uint)Low < (uint)0xFF000000 || (uint)(Low >> 32) == 1)
|
| - {
|
| - byte temp = _cache;
|
| - do
|
| - {
|
| - Stream.WriteByte((byte)(temp + (Low >> 32)));
|
| - temp = 0xFF;
|
| - }
|
| - while (--_cacheSize != 0);
|
| - _cache = (byte)(((uint)Low) >> 24);
|
| - }
|
| - _cacheSize++;
|
| - Low = ((uint)Low) << 8;
|
| - }
|
| -
|
| - public void EncodeDirectBits(uint v, int numTotalBits)
|
| - {
|
| - for (int i = numTotalBits - 1; i >= 0; i--)
|
| - {
|
| - Range >>= 1;
|
| - if (((v >> i) & 1) == 1)
|
| - Low += Range;
|
| - if (Range < kTopValue)
|
| - {
|
| - Range <<= 8;
|
| - ShiftLow();
|
| - }
|
| - }
|
| - }
|
| -
|
| - public void EncodeBit(uint size0, int numTotalBits, uint symbol)
|
| - {
|
| - uint newBound = (Range >> numTotalBits) * size0;
|
| - if (symbol == 0)
|
| - Range = newBound;
|
| - else
|
| - {
|
| - Low += newBound;
|
| - Range -= newBound;
|
| - }
|
| - while (Range < kTopValue)
|
| - {
|
| - Range <<= 8;
|
| - ShiftLow();
|
| - }
|
| - }
|
| -
|
| - public long GetProcessedSizeAdd()
|
| - {
|
| - return _cacheSize +
|
| - Stream.Position - StartPosition + 4;
|
| - // (long)Stream.GetProcessedSize();
|
| - }
|
| - }
|
| -
|
| - class Decoder
|
| - {
|
| - public const uint kTopValue = (1 << 24);
|
| - public uint Range;
|
| - public uint Code;
|
| - // public Buffer.InBuffer Stream = new Buffer.InBuffer(1 << 16);
|
| - public System.IO.Stream Stream;
|
| -
|
| - public void Init(System.IO.Stream stream)
|
| - {
|
| - // Stream.Init(stream);
|
| - Stream = stream;
|
| -
|
| - Code = 0;
|
| - Range = 0xFFFFFFFF;
|
| - for (int i = 0; i < 5; i++)
|
| - Code = (Code << 8) | (byte)Stream.ReadByte();
|
| - }
|
| -
|
| - public void ReleaseStream()
|
| - {
|
| - // Stream.ReleaseStream();
|
| - Stream = null;
|
| - }
|
| -
|
| - public void CloseStream()
|
| - {
|
| - Stream.Close();
|
| - }
|
| -
|
| - public void Normalize()
|
| - {
|
| - while (Range < kTopValue)
|
| - {
|
| - Code = (Code << 8) | (byte)Stream.ReadByte();
|
| - Range <<= 8;
|
| - }
|
| - }
|
| -
|
| - public void Normalize2()
|
| - {
|
| - if (Range < kTopValue)
|
| - {
|
| - Code = (Code << 8) | (byte)Stream.ReadByte();
|
| - Range <<= 8;
|
| - }
|
| - }
|
| -
|
| - public uint GetThreshold(uint total)
|
| - {
|
| - return Code / (Range /= total);
|
| - }
|
| -
|
| - public void Decode(uint start, uint size, uint total)
|
| - {
|
| - Code -= start * Range;
|
| - Range *= size;
|
| - Normalize();
|
| - }
|
| -
|
| - public uint DecodeDirectBits(int numTotalBits)
|
| - {
|
| - uint range = Range;
|
| - uint code = Code;
|
| - uint result = 0;
|
| - for (int i = numTotalBits; i > 0; i--)
|
| - {
|
| - range >>= 1;
|
| - /*
|
| - result <<= 1;
|
| - if (code >= range)
|
| - {
|
| - code -= range;
|
| - result |= 1;
|
| - }
|
| - */
|
| - uint t = (code - range) >> 31;
|
| - code -= range & (t - 1);
|
| - result = (result << 1) | (1 - t);
|
| -
|
| - if (range < kTopValue)
|
| - {
|
| - code = (code << 8) | (byte)Stream.ReadByte();
|
| - range <<= 8;
|
| - }
|
| - }
|
| - Range = range;
|
| - Code = code;
|
| - return result;
|
| - }
|
| -
|
| - public uint DecodeBit(uint size0, int numTotalBits)
|
| - {
|
| - uint newBound = (Range >> numTotalBits) * size0;
|
| - uint symbol;
|
| - if (Code < newBound)
|
| - {
|
| - symbol = 0;
|
| - Range = newBound;
|
| - }
|
| - else
|
| - {
|
| - symbol = 1;
|
| - Code -= newBound;
|
| - Range -= newBound;
|
| - }
|
| - Normalize();
|
| - return symbol;
|
| - }
|
| -
|
| - // ulong GetProcessedSize() {return Stream.GetProcessedSize(); }
|
| - }
|
| -}
|
|
|