30#define LENGTH_CODES 29
36#define L_CODES (LITERALS+1+LENGTH_CODES)
45#define HEAP_SIZE (2*L_CODES+1)
60#define COMMENT_STATE 91
63#define FINISH_STATE 666
104 ulg pending_buf_size;
171 uInt max_chain_length;
182# define max_insert_length max_lazy_match
206 ush bl_count[MAX_BITS+1];
209 int heap[2*L_CODES+1];
216 uch depth[2*L_CODES+1];
276#define put_byte(s, c) {s->pending_buf[s->pending++] = (Bytef)(c);}
279#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
284#define MAX_DIST(s) ((s)->w_size-MIN_LOOKAHEAD)
289#define WIN_INIT MAX_MATCH
295int ZLIB_INTERNAL _tr_tally OF((
deflate_state *s,
unsigned dist,
unsigned lc));
296void ZLIB_INTERNAL _tr_flush_block OF((
deflate_state *s, charf *buf,
297 ulg stored_len,
int last));
300void ZLIB_INTERNAL _tr_stored_block OF((
deflate_state *s, charf *buf,
301 ulg stored_len,
int last));
303#define d_code(dist) \
304 ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)])
313#if defined(GEN_TREES_H) || !defined(STDC)
314 extern uch ZLIB_INTERNAL _length_code[];
315 extern uch ZLIB_INTERNAL _dist_code[];
317 extern const uch ZLIB_INTERNAL _length_code[];
318 extern const uch ZLIB_INTERNAL _dist_code[];
321# define _tr_tally_lit(s, c, flush) \
323 s->sym_buf[s->sym_next++] = 0; \
324 s->sym_buf[s->sym_next++] = 0; \
325 s->sym_buf[s->sym_next++] = cc; \
326 s->dyn_ltree[cc].Freq++; \
327 flush = (s->sym_next == s->sym_end); \
329# define _tr_tally_dist(s, distance, length, flush) \
330 { uch len = (uch)(length); \
331 ush dist = (ush)(distance); \
332 s->sym_buf[s->sym_next++] = (uch)dist; \
333 s->sym_buf[s->sym_next++] = (uch)(dist >> 8); \
334 s->sym_buf[s->sym_next++] = len; \
336 s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \
337 s->dyn_dtree[d_code(dist)].Freq++; \
338 flush = (s->sym_next == s->sym_end); \
341# define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c)
342# define _tr_tally_dist(s, distance, length, flush) \
343 flush = _tr_tally(s, distance, length)
Definition: inftrees.h:24