MCPcopy Create free account
hub / github.com/InteractiveComputerGraphics/SPlisHSPlasH / send_all_trees

Function send_all_trees

extern/zlib/src/trees.c:831–853  ·  view source on GitHub ↗

=========================================================================== * Send the header for a block using dynamic Huffman trees: the counts, the * lengths of the bit length codes, the literal tree and the distance tree. * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4. */

Source from the content-addressed store, hash-verified

829 * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
830 */
831local void send_all_trees(deflate_state *s, int lcodes, int dcodes,
832 int blcodes) {
833 int rank; /* index in bl_order */
834
835 Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes");
836 Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,
837 "too many codes");
838 Tracev((stderr, "\nbl counts: "));
839 send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */
840 send_bits(s, dcodes - 1, 5);
841 send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */
842 for (rank = 0; rank < blcodes; rank++) {
843 Tracev((stderr, "\nbl code %2d ", bl_order[rank]));
844 send_bits(s, s->bl_tree[bl_order[rank]].Len, 3);
845 }
846 Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent));
847
848 send_tree(s, (ct_data *)s->dyn_ltree, lcodes - 1); /* literal tree */
849 Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent));
850
851 send_tree(s, (ct_data *)s->dyn_dtree, dcodes - 1); /* distance tree */
852 Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent));
853}
854
855/* ===========================================================================
856 * Send a stored block

Callers 1

trees.cFile · 0.85

Calls 2

send_bitsFunction · 0.85
send_treeFunction · 0.85

Tested by

no test coverage detected