| Index: third_party/zlib/trees.c
|
| diff --git a/third_party/zlib/trees.c b/third_party/zlib/trees.c
|
| index 56e9bb1c115e81082f58a89b003b766760e12a12..1fd7759ef004c66fd920873efb030eda5d1eafe0 100644
|
| --- a/third_party/zlib/trees.c
|
| +++ b/third_party/zlib/trees.c
|
| @@ -1,5 +1,5 @@
|
| /* trees.c -- output deflated data using Huffman coding
|
| - * Copyright (C) 1995-2010 Jean-loup Gailly
|
| + * Copyright (C) 1995-2012 Jean-loup Gailly
|
| * detect_data_type() function provided freely by Cosmin Truta, 2006
|
| * For conditions of distribution and use, see copyright notice in zlib.h
|
| */
|
| @@ -74,11 +74,6 @@ local const uch bl_order[BL_CODES]
|
| * probability, to avoid transmitting the lengths for unused bit length codes.
|
| */
|
|
|
| -#define Buf_size (8 * 2*sizeof(char))
|
| -/* Number of bits used within bi_buf. (bi_buf might be implemented on
|
| - * more than 16 bits on some systems.)
|
| - */
|
| -
|
| /* ===========================================================================
|
| * Local data. These are initialized only once.
|
| */
|
| @@ -151,8 +146,8 @@ local void send_tree OF((deflate_state *s, ct_data *tree, int max_code));
|
| local int build_bl_tree OF((deflate_state *s));
|
| local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes,
|
| int blcodes));
|
| -local void compress_block OF((deflate_state *s, ct_data *ltree,
|
| - ct_data *dtree));
|
| +local void compress_block OF((deflate_state *s, const ct_data *ltree,
|
| + const ct_data *dtree));
|
| local int detect_data_type OF((deflate_state *s));
|
| local unsigned bi_reverse OF((unsigned value, int length));
|
| local void bi_windup OF((deflate_state *s));
|
| @@ -399,7 +394,6 @@ void ZLIB_INTERNAL _tr_init(s)
|
|
|
| s->bi_buf = 0;
|
| s->bi_valid = 0;
|
| - s->last_eob_len = 8; /* enough lookahead for inflate */
|
| #ifdef DEBUG
|
| s->compressed_len = 0L;
|
| s->bits_sent = 0L;
|
| @@ -883,15 +877,17 @@ void ZLIB_INTERNAL _tr_stored_block(s, buf, stored_len, last)
|
| }
|
|
|
| /* ===========================================================================
|
| + * Flush the bits in the bit buffer to pending output (leaves at most 7 bits)
|
| + */
|
| +void ZLIB_INTERNAL _tr_flush_bits(s)
|
| + deflate_state *s;
|
| +{
|
| + bi_flush(s);
|
| +}
|
| +
|
| +/* ===========================================================================
|
| * Send one empty static block to give enough lookahead for inflate.
|
| * This takes 10 bits, of which 7 may remain in the bit buffer.
|
| - * The current inflate code requires 9 bits of lookahead. If the
|
| - * last two codes for the previous block (real code plus EOB) were coded
|
| - * on 5 bits or less, inflate may have only 5+3 bits of lookahead to decode
|
| - * the last real code. In this case we send two empty static blocks instead
|
| - * of one. (There are no problems if the previous block is stored or fixed.)
|
| - * To simplify the code, we assume the worst case of last real code encoded
|
| - * on one bit only.
|
| */
|
| void ZLIB_INTERNAL _tr_align(s)
|
| deflate_state *s;
|
| @@ -902,20 +898,6 @@ void ZLIB_INTERNAL _tr_align(s)
|
| s->compressed_len += 10L; /* 3 for block type, 7 for EOB */
|
| #endif
|
| bi_flush(s);
|
| - /* Of the 10 bits for the empty block, we have already sent
|
| - * (10 - bi_valid) bits. The lookahead for the last real code (before
|
| - * the EOB of the previous block) was thus at least one plus the length
|
| - * of the EOB plus what we have just sent of the empty static block.
|
| - */
|
| - if (1 + s->last_eob_len + 10 - s->bi_valid < 9) {
|
| - send_bits(s, STATIC_TREES<<1, 3);
|
| - send_code(s, END_BLOCK, static_ltree);
|
| -#ifdef DEBUG
|
| - s->compressed_len += 10L;
|
| -#endif
|
| - bi_flush(s);
|
| - }
|
| - s->last_eob_len = 7;
|
| }
|
|
|
| /* ===========================================================================
|
| @@ -990,7 +972,8 @@ void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last)
|
| } else if (s->strategy == Z_FIXED || static_lenb == opt_lenb) {
|
| #endif
|
| send_bits(s, (STATIC_TREES<<1)+last, 3);
|
| - compress_block(s, (ct_data *)static_ltree, (ct_data *)static_dtree);
|
| + compress_block(s, (const ct_data *)static_ltree,
|
| + (const ct_data *)static_dtree);
|
| #ifdef DEBUG
|
| s->compressed_len += 3 + s->static_len;
|
| #endif
|
| @@ -998,7 +981,8 @@ void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last)
|
| send_bits(s, (DYN_TREES<<1)+last, 3);
|
| send_all_trees(s, s->l_desc.max_code+1, s->d_desc.max_code+1,
|
| max_blindex+1);
|
| - compress_block(s, (ct_data *)s->dyn_ltree, (ct_data *)s->dyn_dtree);
|
| + compress_block(s, (const ct_data *)s->dyn_ltree,
|
| + (const ct_data *)s->dyn_dtree);
|
| #ifdef DEBUG
|
| s->compressed_len += 3 + s->opt_len;
|
| #endif
|
| @@ -1075,8 +1059,8 @@ int ZLIB_INTERNAL _tr_tally (s, dist, lc)
|
| */
|
| local void compress_block(s, ltree, dtree)
|
| deflate_state *s;
|
| - ct_data *ltree; /* literal tree */
|
| - ct_data *dtree; /* distance tree */
|
| + const ct_data *ltree; /* literal tree */
|
| + const ct_data *dtree; /* distance tree */
|
| {
|
| unsigned dist; /* distance of matched string */
|
| int lc; /* match length or unmatched char (if dist == 0) */
|
| @@ -1118,7 +1102,6 @@ local void compress_block(s, ltree, dtree)
|
| } while (lx < s->last_lit);
|
|
|
| send_code(s, END_BLOCK, ltree);
|
| - s->last_eob_len = ltree[END_BLOCK].Len;
|
| }
|
|
|
| /* ===========================================================================
|
| @@ -1226,7 +1209,6 @@ local void copy_block(s, buf, len, header)
|
| int header; /* true if block header must be written */
|
| {
|
| bi_windup(s); /* align on byte boundary */
|
| - s->last_eob_len = 8; /* enough lookahead for inflate */
|
|
|
| if (header) {
|
| put_short(s, (ush)len);
|
|
|