- 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 n = num_entries / entries_per_long;
- unsigned long v = sym;
- if (sizeof(unsigned long) >= 4)
- v |= v << 16;
- if (sizeof(unsigned long) >= 8)
- v |= v << 32;
- do {
- *p++ = v;
- } while (--n);
-
- decode_table_pos += num_entries;
- } else {
- do {
- decode_table[decode_table_pos++] = sym;
- } while (--num_entries);
- }
+
+ /* Fill in the Huffman decode table entries one 16-bit
+ * integer at a time. */
+ do {
+ decode_table[decode_table_pos++] = sym;
+ } while (--num_entries);
+