|
version 1.1, 2012/02/17 15:09:30
|
version 1.1.1.2, 2013/10/14 07:51:14
|
|
Line 1
|
Line 1
|
| /* deflate.h -- internal compression state |
/* deflate.h -- internal compression state |
| * Copyright (C) 1995-2004 Jean-loup Gailly | * Copyright (C) 1995-2012 Jean-loup Gailly |
| * For conditions of distribution and use, see copyright notice in zlib.h |
* For conditions of distribution and use, see copyright notice in zlib.h |
| */ |
*/ |
| |
|
|
Line 48
|
Line 48
|
| #define MAX_BITS 15 |
#define MAX_BITS 15 |
| /* All codes must not exceed MAX_BITS bits */ |
/* All codes must not exceed MAX_BITS bits */ |
| |
|
| |
#define Buf_size 16 |
| |
/* size of bit buffer in bi_buf */ |
| |
|
| #define INIT_STATE 42 |
#define INIT_STATE 42 |
| #define EXTRA_STATE 69 |
#define EXTRA_STATE 69 |
| #define NAME_STATE 73 |
#define NAME_STATE 73 |
|
Line 101 typedef struct internal_state {
|
Line 104 typedef struct internal_state {
|
| int wrap; /* bit 0 true for zlib, bit 1 true for gzip */ |
int wrap; /* bit 0 true for zlib, bit 1 true for gzip */ |
| gz_headerp gzhead; /* gzip header information to write */ |
gz_headerp gzhead; /* gzip header information to write */ |
| uInt gzindex; /* where in extra, name, or comment */ |
uInt gzindex; /* where in extra, name, or comment */ |
| Byte method; /* STORED (for zip only) or DEFLATED */ | Byte method; /* can only be DEFLATED */ |
| int last_flush; /* value of flush param for previous deflate call */ |
int last_flush; /* value of flush param for previous deflate call */ |
| |
|
| /* used by deflate.c: */ |
/* used by deflate.c: */ |
|
Line 188 typedef struct internal_state {
|
Line 191 typedef struct internal_state {
|
| int nice_match; /* Stop searching when current match exceeds this */ |
int nice_match; /* Stop searching when current match exceeds this */ |
| |
|
| /* used by trees.c: */ |
/* used by trees.c: */ |
| /* Didn't use ct_data typedef below to supress compiler warning */ | /* Didn't use ct_data typedef below to suppress compiler warning */ |
| struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */ |
struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */ |
| struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */ |
struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */ |
| struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */ |
struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */ |
|
Line 244 typedef struct internal_state {
|
Line 247 typedef struct internal_state {
|
| ulg opt_len; /* bit length of current block with optimal trees */ |
ulg opt_len; /* bit length of current block with optimal trees */ |
| ulg static_len; /* bit length of current block with static trees */ |
ulg static_len; /* bit length of current block with static trees */ |
| uInt matches; /* number of string matches in current block */ |
uInt matches; /* number of string matches in current block */ |
| int last_eob_len; /* bit length of EOB code for last block */ | uInt insert; /* bytes at e uInt insert; /* bytes at end of window left to insert */ |
| |
|
| #ifdef DEBUG |
#ifdef DEBUG |
| ulg compressed_len; /* total bit length of compressed file mod 2^32 */ |
ulg compressed_len; /* total bit length of compressed file mod 2^32 */ |
|
Line 260 typedef struct internal_state {
|
Line 263 typedef struct internal_state {
|
| * are always zero. |
* are always zero. |
| */ |
*/ |
| |
|
| |
ulg high_water; |
| |
/* High water mark offset in window for initialized bytes -- bytes above |
| |
* this are set to zero in order to avoid memory check warnings when |
| |
* longest match routines access bytes past the input. This is then |
| |
* updated to the new high water mark. |
| |
*/ |
| |
|
| } FAR deflate_state; |
} FAR deflate_state; |
| |
|
| /* Output a byte on the stream. |
/* Output a byte on the stream. |
|
Line 278 typedef struct internal_state {
|
Line 288 typedef struct internal_state {
|
| * distances are limited to MAX_DIST instead of WSIZE. |
* distances are limited to MAX_DIST instead of WSIZE. |
| */ |
*/ |
| |
|
| |
#define WIN_INIT MAX_MATCH |
| |
/* Number of bytes after end of data in window to initialize in order to avoid |
| |
memory checker errors from longest match routines */ |
| |
|
| /* in trees.c */ |
/* in trees.c */ |
| void _tr_init OF((deflate_state *s)); | void ZLIB_INTERNAL _tr_init OF((deflate_state *s)); |
| int _tr_tally OF((deflate_state *s, unsigned dist, unsigned lc)); | int ZLIB_INTERNAL _tr_tally OF((deflate_state *s, unsigned dist, unsigned lc)); |
| void _tr_flush_block OF((deflate_state *s, charf *buf, ulg stored_len, | void ZLIB_INTERNAL _tr_flush_block OF((deflate_state *s, charf *buf, |
| int eof)); | ulg stored_len, int last)); |
| void _tr_align OF((deflate_state *s)); | void ZLIB_INTERNAL _tr_flush_bits OF((deflate_state *s)); |
| void _tr_stored_block OF((deflate_state *s, charf *buf, ulg stored_len, | void ZLIB_INTERNAL _tr_align OF((deflate_state *s)); |
| int eof)); | void ZLIB_INTERNAL _tr_stored_block OF((deflate_state *s, charf *buf, |
| | ulg stored_len, int last)); |
| |
|
| #define d_code(dist) \ |
#define d_code(dist) \ |
| ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)]) |
((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)]) |
|
Line 298 void _tr_stored_block OF((deflate_state *s, charf *buf
|
Line 313 void _tr_stored_block OF((deflate_state *s, charf *buf
|
| /* Inline versions of _tr_tally for speed: */ |
/* Inline versions of _tr_tally for speed: */ |
| |
|
| #if defined(GEN_TREES_H) || !defined(STDC) |
#if defined(GEN_TREES_H) || !defined(STDC) |
| extern uch _length_code[]; | extern uch ZLIB_INTERNAL _length_code[]; |
| extern uch _dist_code[]; | extern uch ZLIB_INTERNAL _dist_code[]; |
| #else |
#else |
| extern const uch _length_code[]; | extern const uch ZLIB_INTERNAL _length_code[]; |
| extern const uch _dist_code[]; | extern const uch ZLIB_INTERNAL _dist_code[]; |
| #endif |
#endif |
| |
|
| # define _tr_tally_lit(s, c, flush) \ |
# define _tr_tally_lit(s, c, flush) \ |