30 #define LENGTH_CODES 29 
   36 #define L_CODES (LITERALS+1+LENGTH_CODES) 
   45 #define HEAP_SIZE (2*L_CODES+1) 
   52 #define EXTRA_STATE   69 
   54 #define COMMENT_STATE 91 
   55 #define HCRC_STATE   103 
   56 #define BUSY_STATE   113 
   57 #define FINISH_STATE 666 
   78 typedef struct static_tree_desc_s  static_tree_desc;
 
   88 typedef unsigned IPos;
 
  176 #   define max_insert_length  max_lazy_match 
  263 #define put_byte(s, c) {s->pending_buf[s->pending++] = (c);} 
  266 #define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1) 
  271 #define MAX_DIST(s)  ((s)->w_size-MIN_LOOKAHEAD) 
  278 int  _tr_tally        OF((
deflate_state *s, 
unsigned dist, 
unsigned lc));
 
  279 void _tr_flush_block  OF((
deflate_state *s, charf *buf, ulg stored_len,
 
  282 void _tr_stored_block OF((
deflate_state *s, charf *buf, ulg stored_len,
 
  285 #define d_code(dist) \ 
  286    ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)]) 
  295 #if defined(GEN_TREES_H) || !defined(STDC) 
  296   extern uch _length_code[];
 
  297   extern uch _dist_code[];
 
  299   extern const uch _length_code[];
 
  300   extern const uch _dist_code[];
 
  303 # define _tr_tally_lit(s, c, flush) \ 
  305     s->sym_buf[s->sym_next++] = 0; \ 
  306     s->sym_buf[s->sym_next++] = 0; \ 
  307     s->sym_buf[s->sym_next++] = cc; \ 
  308     s->dyn_ltree[cc].Freq++; \ 
  309     flush = (s->sym_next == s->sym_end); \ 
  311 # define _tr_tally_dist(s, distance, length, flush) \ 
  312   { uch len = (length); \ 
  313     ush dist = (ush)(distance); \ 
  314     s->sym_buf[s->sym_next++] = dist; \ 
  315     s->sym_buf[s->sym_next++] = dist >> 8; \ 
  316     s->sym_buf[s->sym_next++] = len; \ 
  318     s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \ 
  319     s->dyn_dtree[d_code(dist)].Freq++; \ 
  320     flush = (s->sym_next == s->sym_end); \ 
  323 # define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c) 
  324 # define _tr_tally_dist(s, distance, length, flush) \ 
  325               flush = _tr_tally(s, distance, length) 
struct tree_desc_s l_desc
struct ct_data_s dyn_dtree[2 *D_CODES+1]
struct ct_data_s bl_tree[2 *BL_CODES+1]
struct tree_desc_s bl_desc
struct tree_desc_s d_desc
struct ct_data_s dyn_ltree[HEAP_SIZE]
static_tree_desc * stat_desc