Lines Matching refs:tree
138 static void pqdownheap (deflate_state *s, ct_data *tree, int k);
140 static void gen_codes (ct_data *tree, int max_code, ush *bl_count);
142 static void scan_tree (deflate_state *s, ct_data *tree, int max_code);
143 static void send_tree (deflate_state *s, ct_data *tree, int max_code);
156 # define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len) argument
160 # define send_code(s, c, tree) \ argument
162 send_bits(s, tree[c].Code, tree[c].Len); }
350 #define pqremove(s, tree, top) \ argument
354 pqdownheap(s, tree, SMALLEST); \
361 #define smaller(tree, n, m, depth) \ argument
362 (tree[n].Freq < tree[m].Freq || \
363 (tree[n].Freq == tree[m].Freq && depth[n] <= depth[m]))
373 ct_data *tree, /* the tree to restore */ in pqdownheap() argument
382 smaller(tree, s->heap[j+1], s->heap[j], s->depth)) { in pqdownheap()
386 if (smaller(tree, v, s->heap[j], s->depth)) break; in pqdownheap()
412 ct_data *tree = desc->dyn_tree; in gen_bitlen() local
430 tree[s->heap[s->heap_max]].Len = 0; /* root of the heap */ in gen_bitlen()
434 bits = tree[tree[n].Dad].Len + 1; in gen_bitlen()
436 tree[n].Len = (ush)bits; in gen_bitlen()
444 f = tree[n].Freq; in gen_bitlen()
476 if (tree[m].Len != (unsigned) bits) { in gen_bitlen()
477 Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits)); in gen_bitlen()
478 s->opt_len += ((long)bits - (long)tree[m].Len) in gen_bitlen()
479 *(long)tree[m].Freq; in gen_bitlen()
480 tree[m].Len = (ush)bits; in gen_bitlen()
496 ct_data *tree, /* the tree to decorate */ in gen_codes() argument
520 int len = tree[n].Len; in gen_codes()
523 tree[n].Code = bitrev32((u32)(next_code[len]++)) >> (32 - len); in gen_codes()
525 Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ", in gen_codes()
526 n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1)); in gen_codes()
543 ct_data *tree = desc->dyn_tree; in build_tree() local
557 if (tree[n].Freq != 0) { in build_tree()
561 tree[n].Len = 0; in build_tree()
572 tree[node].Freq = 1; in build_tree()
582 for (n = s->heap_len/2; n >= 1; n--) pqdownheap(s, tree, n); in build_tree()
589 pqremove(s, tree, n); /* n = node of least frequency */ in build_tree()
596 tree[node].Freq = tree[n].Freq + tree[m].Freq; in build_tree()
598 tree[n].Dad = tree[m].Dad = (ush)node; in build_tree()
600 if (tree == s->bl_tree) { in build_tree()
602 node, tree[node].Freq, n, tree[n].Freq, m, tree[m].Freq); in build_tree()
607 pqdownheap(s, tree, SMALLEST); in build_tree()
619 gen_codes ((ct_data *)tree, max_code, s->bl_count); in build_tree()
628 ct_data *tree, /* the tree to be scanned */ in scan_tree() argument
635 int nextlen = tree[0].Len; /* length of next code */ in scan_tree()
641 tree[max_code+1].Len = (ush)0xffff; /* guard */ in scan_tree()
644 curlen = nextlen; nextlen = tree[n+1].Len; in scan_tree()
674 ct_data *tree, /* the tree to be scanned */ in send_tree() argument
681 int nextlen = tree[0].Len; /* length of next code */ in send_tree()
690 curlen = nextlen; nextlen = tree[n+1].Len; in send_tree()