| Index: third_party/zlib/inflate.h
|
| ===================================================================
|
| --- third_party/zlib/inflate.h (revision 113739)
|
| +++ third_party/zlib/inflate.h (working copy)
|
| @@ -1,5 +1,5 @@
|
| /* inflate.h -- internal inflate state definition
|
| - * Copyright (C) 1995-2004 Mark Adler
|
| + * Copyright (C) 1995-2009 Mark Adler
|
| * For conditions of distribution and use, see copyright notice in zlib.h
|
| */
|
|
|
| @@ -32,11 +32,13 @@
|
| TYPE, /* i: waiting for type bits, including last-flag bit */
|
| TYPEDO, /* i: same, but skip check to exit inflate on new block */
|
| STORED, /* i: waiting for stored size (length and complement) */
|
| + COPY_, /* i/o: same as COPY below, but only first time in */
|
| COPY, /* i/o: waiting for input or output to copy stored block */
|
| TABLE, /* i: waiting for dynamic block table lengths */
|
| LENLENS, /* i: waiting for code length code lengths */
|
| CODELENS, /* i: waiting for length/lit and distance code lengths */
|
| - LEN, /* i: waiting for length/lit code */
|
| + LEN_, /* i: same as LEN below, but only first time in */
|
| + LEN, /* i: waiting for length/lit/eob code */
|
| LENEXT, /* i: waiting for length extra bits */
|
| DIST, /* i: waiting for distance code */
|
| DISTEXT, /* i: waiting for distance extra bits */
|
| @@ -53,19 +55,21 @@
|
| /*
|
| State transitions between above modes -
|
|
|
| - (most modes can go to the BAD or MEM mode -- not shown for clarity)
|
| + (most modes can go to BAD or MEM on error -- not shown for clarity)
|
|
|
| Process header:
|
| - HEAD -> (gzip) or (zlib)
|
| - (gzip) -> FLAGS -> TIME -> OS -> EXLEN -> EXTRA -> NAME
|
| - NAME -> COMMENT -> HCRC -> TYPE
|
| + HEAD -> (gzip) or (zlib) or (raw)
|
| + (gzip) -> FLAGS -> TIME -> OS -> EXLEN -> EXTRA -> NAME -> COMMENT ->
|
| + HCRC -> TYPE
|
| (zlib) -> DICTID or TYPE
|
| DICTID -> DICT -> TYPE
|
| + (raw) -> TYPEDO
|
| Read deflate blocks:
|
| - TYPE -> STORED or TABLE or LEN or CHECK
|
| - STORED -> COPY -> TYPE
|
| - TABLE -> LENLENS -> CODELENS -> LEN
|
| - Read deflate codes:
|
| + TYPE -> TYPEDO -> STORED or TABLE or LEN_ or CHECK
|
| + STORED -> COPY_ -> COPY -> TYPE
|
| + TABLE -> LENLENS -> CODELENS -> LEN_
|
| + LEN_ -> LEN
|
| + Read deflate codes in fixed or dynamic block:
|
| LEN -> LENEXT or LIT or TYPE
|
| LENEXT -> DIST -> DISTEXT -> MATCH -> LEN
|
| LIT -> LEN
|
| @@ -73,7 +77,7 @@
|
| CHECK -> LENGTH -> DONE
|
| */
|
|
|
| -/* state maintained between inflate() calls. Approximately 7K bytes. */
|
| +/* state maintained between inflate() calls. Approximately 10K bytes. */
|
| struct inflate_state {
|
| inflate_mode mode; /* current inflate mode */
|
| int last; /* true if processing last block */
|
| @@ -88,7 +92,7 @@
|
| unsigned wbits; /* log base 2 of requested window size */
|
| unsigned wsize; /* window size or zero if not using window */
|
| unsigned whave; /* valid bytes in the window */
|
| - unsigned write; /* window write index */
|
| + unsigned wnext; /* window write index */
|
| unsigned char FAR *window; /* allocated sliding window, if needed */
|
| /* bit accumulator */
|
| unsigned long hold; /* input bit accumulator */
|
| @@ -112,4 +116,7 @@
|
| unsigned short lens[320]; /* temporary storage for code lengths */
|
| unsigned short work[288]; /* work area for code table building */
|
| code codes[ENOUGH]; /* space for code tables */
|
| + int sane; /* if false, allow invalid distance too far */
|
| + int back; /* bits back of last unprocessed length/lit */
|
| + unsigned was; /* initial length of match */
|
| };
|
|
|