Lines Matching refs:huff
155 struct huff {
165 static void len2huff(struct huff *huff, char bitlen[], int len)
171 memset(huff, 0, sizeof(struct huff));
172 for (i = 0; i<len; i++) huff->length[bitlen[i]]++;
176 *huff->length = *offset = 0;
177 for (i = 1; i<16; i++) offset[i] = offset[i-1] + huff->length[i-1];
178 for (i = 0; i<len; i++) if (bitlen[i]) huff->symbol[offset[bitlen[i]]++] = i;
185 static unsigned huff_and_puff(struct bitbuf *bb, struct huff *huff)
187 unsigned short *length = huff->length;
195 if ((length - huff->length) & 16) error_exit("bad symbol");
198 return huff->symbol[start + offset];
240 struct huff *disthuff, *lithuff;
244 struct huff *h2 = ((struct huff *)libbuf)+1;
280 len2huff(disthuff = ((struct huff *)libbuf)+2, bits+litlen, distlen);
397 len2huff(dd->fixlithuff = ((struct huff *)libbuf)+3, libbuf, 288);
399 len2huff(dd->fixdisthuff = ((struct huff *)libbuf)+4, libbuf, 30);