diff options
| author | Igor Pavlov <87184205+ip7z@users.noreply.github.com> | 2026-02-12 00:00:00 +0000 |
|---|---|---|
| committer | Igor Pavlov <87184205+ip7z@users.noreply.github.com> | 2026-02-12 17:38:49 +0500 |
| commit | 839151eaaad24771892afaae6bac690e31e58384 (patch) | |
| tree | e292449d621f7a1d503b975984a2aca240dd2d8f /C/HuffEnc.c | |
| parent | 5e96a8279489832924056b1fa82f29d5837c9469 (diff) | |
| download | 7zip-26.00.tar.gz 7zip-26.00.tar.bz2 7zip-26.00.zip | |
Diffstat (limited to 'C/HuffEnc.c')
| -rw-r--r-- | C/HuffEnc.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/C/HuffEnc.c b/C/HuffEnc.c index cbf8c22..297b41a 100644 --- a/C/HuffEnc.c +++ b/C/HuffEnc.c | |||
| @@ -13,7 +13,7 @@ Igor Pavlov : Public domain */ | |||
| 13 | #define NUM_BITS 10 | 13 | #define NUM_BITS 10 |
| 14 | #define MASK ((1u << NUM_BITS) - 1) | 14 | #define MASK ((1u << NUM_BITS) - 1) |
| 15 | #define FREQ_MASK (~(UInt32)MASK) | 15 | #define FREQ_MASK (~(UInt32)MASK) |
| 16 | #define NUM_COUNTERS (48 * 2) | 16 | #define NUM_COUNTERS (104 * 2) // (80 * 2) or (128 * 2) : ((prime_number + 1) * 2) for smaller code. |
| 17 | 17 | ||
| 18 | #if 1 && (defined(MY_CPU_LE) || defined(MY_CPU_BE)) | 18 | #if 1 && (defined(MY_CPU_LE) || defined(MY_CPU_BE)) |
| 19 | #if defined(MY_CPU_LE) | 19 | #if defined(MY_CPU_LE) |
| @@ -95,9 +95,10 @@ void Huffman_Generate(const UInt32 *freqs, UInt32 *p, Byte *lens, unsigned numSy | |||
| 95 | counters[1] = 0; | 95 | counters[1] = 0; |
| 96 | for (i = 2; i != NUM_COUNTERS; i += 2) | 96 | for (i = 2; i != NUM_COUNTERS; i += 2) |
| 97 | { | 97 | { |
| 98 | unsigned c; | 98 | const unsigned c0 = (counters )[i]; |
| 99 | c = (counters )[i]; (counters )[i] = num; num += c; | 99 | const unsigned c1 = (counters + 1)[i]; |
| 100 | c = (counters + 1)[i]; (counters + 1)[i] = num; num += c; | 100 | (counters )[i] = num; num += c0; |
| 101 | (counters + 1)[i] = num; num += c1; | ||
| 101 | } | 102 | } |
| 102 | counters[0] = num; // we want to write (freq==0) symbols to the end of (p) array | 103 | counters[0] = num; // we want to write (freq==0) symbols to the end of (p) array |
| 103 | { | 104 | { |
