* (2**table_bits) + 2 * num_syms to guarantee
* that there is enough space.
*
- * @num_syms: Total number of symbols in the Huffman tree.
+ * @num_syms: Number of symbols in the alphabet, including symbols
+ * that do not appear in this particular input chunk.
*
* @table_bits: Any symbols with a code length of table_bits or less can
* be decoded in one lookup of the table. 2**table_bits
* any Huffman codes longer than @table_bits.
*
* @lens: An array of length @num_syms, indexable by symbol, that
- * gives the length of the Huffman codeward for that
+ * gives the length of the Huffman codeword for that
* symbol. Because the Huffman tree is in canonical form,
* it can be reconstructed by only knowing the length of
* the codeword for each symbol. It is assumed, but not
break;
unsigned num_entries = 1 << (table_bits - codeword_len);
- if (num_entries >=
- (sizeof(unsigned long) / sizeof(decode_table[0])))
- {
- wimlib_assert2(decode_table_pos % 4 == 0);
+ const unsigned entries_per_long = sizeof(unsigned long) /
+ sizeof(decode_table[0]);
+ if (num_entries >= entries_per_long) {
+ wimlib_assert2(decode_table_pos % entries_per_long == 0);
BUILD_BUG_ON(sizeof(unsigned long) != 4 &&
sizeof(unsigned long) != 8);
unsigned long *p = (unsigned long *)&decode_table[decode_table_pos];
- unsigned long n = num_entries /
- (sizeof(unsigned long) /
- sizeof(decode_table[0]));
+ unsigned n = num_entries / entries_per_long;
unsigned long v = sym;
if (sizeof(unsigned long) >= 4)
v |= v << 16;