(s, lcodes, dcodes, blcodes)
| 11295 | * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4. |
| 11296 | */ |
| 11297 | function send_all_trees(s, lcodes, dcodes, blcodes) |
| 11298 | // deflate_state *s; |
| 11299 | // int lcodes, dcodes, blcodes; /* number of codes for each tree */ |
| 11300 | { |
| 11301 | var rank; /* index in bl_order */ |
| 11302 | |
| 11303 | //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes"); |
| 11304 | //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES, |
| 11305 | // "too many codes"); |
| 11306 | //Tracev((stderr, "\nbl counts: ")); |
| 11307 | send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */ |
| 11308 | send_bits(s, dcodes - 1, 5); |
| 11309 | send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */ |
| 11310 | for (rank = 0; rank < blcodes; rank++) { |
| 11311 | //Tracev((stderr, "\nbl code %2d ", bl_order[rank])); |
| 11312 | send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3); |
| 11313 | } |
| 11314 | //Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent)); |
| 11315 | |
| 11316 | send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */ |
| 11317 | //Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent)); |
| 11318 | |
| 11319 | send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */ |
| 11320 | //Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent)); |
| 11321 | } |
| 11322 | |
| 11323 | |
| 11324 | /* =========================================================================== |
no test coverage detected