diff options
Diffstat (limited to 'CPP/7zip/Compress/QuantumDecoder.cpp')
-rw-r--r-- | CPP/7zip/Compress/QuantumDecoder.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/CPP/7zip/Compress/QuantumDecoder.cpp b/CPP/7zip/Compress/QuantumDecoder.cpp index 2adb9053..64e35bf2 100644 --- a/CPP/7zip/Compress/QuantumDecoder.cpp +++ b/CPP/7zip/Compress/QuantumDecoder.cpp @@ -37,7 +37,7 @@ unsigned CModelDecoder::Decode(CRangeDecoder *rc) unsigned i; for (i = 1; Freqs[i] > threshold; i++); - rc->Decode(Freqs[i], Freqs[i - 1], Freqs[0]); + rc->Decode(Freqs[i], Freqs[(size_t)i - 1], Freqs[0]); unsigned res = Vals[--i]; do @@ -50,7 +50,7 @@ unsigned CModelDecoder::Decode(CRangeDecoder *rc) { ReorderCount = kReorderCount; for (i = 0; i < NumItems; i++) - Freqs[i] = (UInt16)(((Freqs[i] - Freqs[i + 1]) + 1) >> 1); + Freqs[i] = (UInt16)(((Freqs[i] - Freqs[(size_t)i + 1]) + 1) >> 1); for (i = 0; i < NumItems - 1; i++) for (unsigned j = i + 1; j < NumItems; j++) if (Freqs[i] < Freqs[j]) @@ -64,7 +64,7 @@ unsigned CModelDecoder::Decode(CRangeDecoder *rc) } do - Freqs[i] = (UInt16)(Freqs[i] + Freqs[i + 1]); + Freqs[i] = (UInt16)(Freqs[i] + Freqs[(size_t)i + 1]); while (i--); } else @@ -73,8 +73,8 @@ unsigned CModelDecoder::Decode(CRangeDecoder *rc) do { Freqs[i] >>= 1; - if (Freqs[i] <= Freqs[i + 1]) - Freqs[i] = (UInt16)(Freqs[i + 1] + 1); + if (Freqs[i] <= Freqs[(size_t)i + 1]) + Freqs[i] = (UInt16)(Freqs[(size_t)i + 1] + 1); } while (i--); } |