Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/kornelski/7z.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'CPP/7zip/Compress/RangeCoder/RangeCoder.h')
-rwxr-xr-xCPP/7zip/Compress/RangeCoder/RangeCoder.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/CPP/7zip/Compress/RangeCoder/RangeCoder.h b/CPP/7zip/Compress/RangeCoder/RangeCoder.h
index bbb2ba82..0a6b4064 100755
--- a/CPP/7zip/Compress/RangeCoder/RangeCoder.h
+++ b/CPP/7zip/Compress/RangeCoder/RangeCoder.h
@@ -71,13 +71,12 @@ public:
Low = (UInt32)Low << 8;
}
- void EncodeDirectBits(UInt32 value, int numTotalBits)
+ void EncodeDirectBits(UInt32 value, int numBits)
{
- for (int i = numTotalBits - 1; i >= 0; i--)
+ for (numBits--; numBits >= 0; numBits--)
{
Range >>= 1;
- if (((value >> i) & 1) == 1)
- Low += Range;
+ Low += Range & (0 - ((value >> numBits) & 1));
if (Range < kTopValue)
{
Range <<= 8;