#define NT (CODE_BIT + 3)
#define PBIT 4 /* smallest integer such that (1U << PBIT) > NP */
#define TBIT 5 /* smallest integer such that (1U << TBIT) > NT */
-#if NT > NP
-# define NPT NT
-#else
-# define NPT NP
-#endif
+#define NPT (1<<TBIT)
/* local ush left[2 * NC - 1]; */
/* local ush right[2 * NC - 1]; */
if ((len = bitlen[ch]) == 0) continue;
nextcode = start[len] + weight[len];
if (len <= (unsigned)tablebits) {
+ if (nextcode > 1 << tablebits)
+ error("Bad table\n");
for (i = start[len]; i < nextcode; i++) table[i] = ch;
} else {
k = start[len];
if (c == 7) {
mask = (unsigned) 1 << (BITBUFSIZ - 1 - 3);
while (mask & bitbuf) { mask >>= 1; c++; }
+ if (c > 16)
+ error("Bad table\n");
}
fillbuf((c < 7) ? 3 : c - 3);
pt_len[i++] = c;