diff options
Diffstat (limited to 'C/Ppmd7Enc.c')
-rw-r--r-- | C/Ppmd7Enc.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/C/Ppmd7Enc.c b/C/Ppmd7Enc.c index 41106ba..49cbbe6 100644 --- a/C/Ppmd7Enc.c +++ b/C/Ppmd7Enc.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* Ppmd7Enc.c -- Ppmd7z (PPMdH with 7z Range Coder) Encoder | 1 | /* Ppmd7Enc.c -- Ppmd7z (PPMdH with 7z Range Coder) Encoder |
2 | 2023-04-02 : Igor Pavlov : Public domain | 2 | 2023-09-07 : Igor Pavlov : Public domain |
3 | This code is based on: | 3 | This code is based on: |
4 | PPMd var.H (2001): Dmitry Shkarin : Public domain */ | 4 | PPMd var.H (2001): Dmitry Shkarin : Public domain */ |
5 | 5 | ||
@@ -82,7 +82,7 @@ void Ppmd7z_Flush_RangeEnc(CPpmd7 *p) | |||
82 | 82 | ||
83 | void Ppmd7_UpdateModel(CPpmd7 *p); | 83 | void Ppmd7_UpdateModel(CPpmd7 *p); |
84 | 84 | ||
85 | #define MASK(sym) ((unsigned char *)charMask)[sym] | 85 | #define MASK(sym) ((Byte *)charMask)[sym] |
86 | 86 | ||
87 | Z7_FORCE_INLINE | 87 | Z7_FORCE_INLINE |
88 | static | 88 | static |
@@ -139,8 +139,8 @@ void Ppmd7z_EncodeSymbol(CPpmd7 *p, int symbol) | |||
139 | MASK(s->Symbol) = 0; | 139 | MASK(s->Symbol) = 0; |
140 | do | 140 | do |
141 | { | 141 | { |
142 | unsigned sym0 = s2[0].Symbol; | 142 | const unsigned sym0 = s2[0].Symbol; |
143 | unsigned sym1 = s2[1].Symbol; | 143 | const unsigned sym1 = s2[1].Symbol; |
144 | s2 += 2; | 144 | s2 += 2; |
145 | MASK(sym0) = 0; | 145 | MASK(sym0) = 0; |
146 | MASK(sym1) = 0; | 146 | MASK(sym1) = 0; |
@@ -265,16 +265,15 @@ void Ppmd7z_EncodeSymbol(CPpmd7 *p, int symbol) | |||
265 | if (num2 != 0) | 265 | if (num2 != 0) |
266 | { | 266 | { |
267 | s += i; | 267 | s += i; |
268 | for (;;) | 268 | do |
269 | { | 269 | { |
270 | unsigned sym0 = s[0].Symbol; | 270 | const unsigned sym0 = s[0].Symbol; |
271 | unsigned sym1 = s[1].Symbol; | 271 | const unsigned sym1 = s[1].Symbol; |
272 | s += 2; | 272 | s += 2; |
273 | sum += (s[-2].Freq & (unsigned)(MASK(sym0))); | 273 | sum += (s[-2].Freq & (unsigned)(MASK(sym0))); |
274 | sum += (s[-1].Freq & (unsigned)(MASK(sym1))); | 274 | sum += (s[-1].Freq & (unsigned)(MASK(sym1))); |
275 | if (--num2 == 0) | ||
276 | break; | ||
277 | } | 275 | } |
276 | while (--num2); | ||
278 | } | 277 | } |
279 | 278 | ||
280 | 279 | ||