Deleted Added
full compact
trees.c (237691) trees.c (254069)
1/* trees.c -- output deflated data using Huffman coding
2 * Copyright (C) 1995-2012 Jean-loup Gailly
3 * detect_data_type() function provided freely by Cosmin Truta, 2006
4 * For conditions of distribution and use, see copyright notice in zlib.h
5 */
6
7/*
8 * ALGORITHM

--- 132 unchanged lines hidden (view full) ---

141local void gen_bitlen OF((deflate_state *s, tree_desc *desc));
142local void gen_codes OF((ct_data *tree, int max_code, ushf *bl_count));
143local void build_tree OF((deflate_state *s, tree_desc *desc));
144local void scan_tree OF((deflate_state *s, ct_data *tree, int max_code));
145local void send_tree OF((deflate_state *s, ct_data *tree, int max_code));
146local int build_bl_tree OF((deflate_state *s));
147local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes,
148 int blcodes));
1/* trees.c -- output deflated data using Huffman coding
2 * Copyright (C) 1995-2012 Jean-loup Gailly
3 * detect_data_type() function provided freely by Cosmin Truta, 2006
4 * For conditions of distribution and use, see copyright notice in zlib.h
5 */
6
7/*
8 * ALGORITHM

--- 132 unchanged lines hidden (view full) ---

141local void gen_bitlen OF((deflate_state *s, tree_desc *desc));
142local void gen_codes OF((ct_data *tree, int max_code, ushf *bl_count));
143local void build_tree OF((deflate_state *s, tree_desc *desc));
144local void scan_tree OF((deflate_state *s, ct_data *tree, int max_code));
145local void send_tree OF((deflate_state *s, ct_data *tree, int max_code));
146local int build_bl_tree OF((deflate_state *s));
147local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes,
148 int blcodes));
149local void compress_block OF((deflate_state *s, ct_data *ltree,
150 ct_data *dtree));
149local void compress_block OF((deflate_state *s, const ct_data *ltree,
150 const ct_data *dtree));
151local int detect_data_type OF((deflate_state *s));
152local unsigned bi_reverse OF((unsigned value, int length));
153local void bi_windup OF((deflate_state *s));
154local void bi_flush OF((deflate_state *s));
155local void copy_block OF((deflate_state *s, charf *buf, unsigned len,
156 int header));
157
158#ifdef GEN_TREES_H

--- 808 unchanged lines hidden (view full) ---

967 _tr_stored_block(s, buf, stored_len, last);
968
969#ifdef FORCE_STATIC
970 } else if (static_lenb >= 0) { /* force static trees */
971#else
972 } else if (s->strategy == Z_FIXED || static_lenb == opt_lenb) {
973#endif
974 send_bits(s, (STATIC_TREES<<1)+last, 3);
151local int detect_data_type OF((deflate_state *s));
152local unsigned bi_reverse OF((unsigned value, int length));
153local void bi_windup OF((deflate_state *s));
154local void bi_flush OF((deflate_state *s));
155local void copy_block OF((deflate_state *s, charf *buf, unsigned len,
156 int header));
157
158#ifdef GEN_TREES_H

--- 808 unchanged lines hidden (view full) ---

967 _tr_stored_block(s, buf, stored_len, last);
968
969#ifdef FORCE_STATIC
970 } else if (static_lenb >= 0) { /* force static trees */
971#else
972 } else if (s->strategy == Z_FIXED || static_lenb == opt_lenb) {
973#endif
974 send_bits(s, (STATIC_TREES<<1)+last, 3);
975 compress_block(s, (ct_data *)static_ltree, (ct_data *)static_dtree);
975 compress_block(s, (const ct_data *)static_ltree,
976 (const ct_data *)static_dtree);
976#ifdef DEBUG
977 s->compressed_len += 3 + s->static_len;
978#endif
979 } else {
980 send_bits(s, (DYN_TREES<<1)+last, 3);
981 send_all_trees(s, s->l_desc.max_code+1, s->d_desc.max_code+1,
982 max_blindex+1);
977#ifdef DEBUG
978 s->compressed_len += 3 + s->static_len;
979#endif
980 } else {
981 send_bits(s, (DYN_TREES<<1)+last, 3);
982 send_all_trees(s, s->l_desc.max_code+1, s->d_desc.max_code+1,
983 max_blindex+1);
983 compress_block(s, (ct_data *)s->dyn_ltree, (ct_data *)s->dyn_dtree);
984 compress_block(s, (const ct_data *)s->dyn_ltree,
985 (const ct_data *)s->dyn_dtree);
984#ifdef DEBUG
985 s->compressed_len += 3 + s->opt_len;
986#endif
987 }
988 Assert (s->compressed_len == s->bits_sent, "bad compressed size");
989 /* The above check is made mod 2^32, for files larger than 512 MB
990 * and uLong implemented on 32 bits.
991 */

--- 60 unchanged lines hidden (view full) ---

1052 */
1053}
1054
1055/* ===========================================================================
1056 * Send the block data compressed using the given Huffman trees
1057 */
1058local void compress_block(s, ltree, dtree)
1059 deflate_state *s;
986#ifdef DEBUG
987 s->compressed_len += 3 + s->opt_len;
988#endif
989 }
990 Assert (s->compressed_len == s->bits_sent, "bad compressed size");
991 /* The above check is made mod 2^32, for files larger than 512 MB
992 * and uLong implemented on 32 bits.
993 */

--- 60 unchanged lines hidden (view full) ---

1054 */
1055}
1056
1057/* ===========================================================================
1058 * Send the block data compressed using the given Huffman trees
1059 */
1060local void compress_block(s, ltree, dtree)
1061 deflate_state *s;
1060 ct_data *ltree; /* literal tree */
1061 ct_data *dtree; /* distance tree */
1062 const ct_data *ltree; /* literal tree */
1063 const ct_data *dtree; /* distance tree */
1062{
1063 unsigned dist; /* distance of matched string */
1064 int lc; /* match length or unmatched char (if dist == 0) */
1065 unsigned lx = 0; /* running index in l_buf */
1066 unsigned code; /* the code to send */
1067 int extra; /* number of extra bits to send */
1068
1069 if (s->last_lit != 0) do {

--- 155 unchanged lines hidden ---
1064{
1065 unsigned dist; /* distance of matched string */
1066 int lc; /* match length or unmatched char (if dist == 0) */
1067 unsigned lx = 0; /* running index in l_buf */
1068 unsigned code; /* the code to send */
1069 int extra; /* number of extra bits to send */
1070
1071 if (s->last_lit != 0) do {

--- 155 unchanged lines hidden ---