Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/externals/zlib/include/inflate.h

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /externals/zlib/include/inflate.h (Version 11.3.0) and /externals/zlib/include/inflate.h (Version 11.2.1)


  1 /* inflate.h -- internal inflate state definit      1 /* inflate.h -- internal inflate state definition
  2  * Copyright (C) 1995-2019 Mark Adler               2  * Copyright (C) 1995-2019 Mark Adler
  3  * For conditions of distribution and use, see      3  * For conditions of distribution and use, see copyright notice in zlib.h
  4  */                                                 4  */
  5                                                     5 
  6 /* WARNING: this file should *not* be used by       6 /* WARNING: this file should *not* be used by applications. It is
  7    part of the implementation of the compressi      7    part of the implementation of the compression library and is
  8    subject to change. Applications should only      8    subject to change. Applications should only use zlib.h.
  9  */                                                 9  */
 10                                                    10 
 11 /* define NO_GZIP when compiling if you want t     11 /* define NO_GZIP when compiling if you want to disable gzip header and
 12    trailer decoding by inflate().  NO_GZIP wou     12    trailer decoding by inflate().  NO_GZIP would be used to avoid linking in
 13    the crc code when it is not needed.  For sh     13    the crc code when it is not needed.  For shared libraries, gzip decoding
 14    should be left enabled. */                      14    should be left enabled. */
 15 #ifndef NO_GZIP                                    15 #ifndef NO_GZIP
 16 #  define GUNZIP                                   16 #  define GUNZIP
 17 #endif                                             17 #endif
 18                                                    18 
 19 /* Possible inflate modes between inflate() ca     19 /* Possible inflate modes between inflate() calls */
 20 typedef enum {                                     20 typedef enum {
 21     HEAD = 16180,   /* i: waiting for magic he     21     HEAD = 16180,   /* i: waiting for magic header */
 22     FLAGS,      /* i: waiting for method and f     22     FLAGS,      /* i: waiting for method and flags (gzip) */
 23     TIME,       /* i: waiting for modification     23     TIME,       /* i: waiting for modification time (gzip) */
 24     OS,         /* i: waiting for extra flags      24     OS,         /* i: waiting for extra flags and operating system (gzip) */
 25     EXLEN,      /* i: waiting for extra length     25     EXLEN,      /* i: waiting for extra length (gzip) */
 26     EXTRA,      /* i: waiting for extra bytes      26     EXTRA,      /* i: waiting for extra bytes (gzip) */
 27     NAME,       /* i: waiting for end of file      27     NAME,       /* i: waiting for end of file name (gzip) */
 28     COMMENT,    /* i: waiting for end of comme     28     COMMENT,    /* i: waiting for end of comment (gzip) */
 29     HCRC,       /* i: waiting for header crc (     29     HCRC,       /* i: waiting for header crc (gzip) */
 30     DICTID,     /* i: waiting for dictionary c     30     DICTID,     /* i: waiting for dictionary check value */
 31     DICT,       /* waiting for inflateSetDicti     31     DICT,       /* waiting for inflateSetDictionary() call */
 32         TYPE,       /* i: waiting for type bit     32         TYPE,       /* i: waiting for type bits, including last-flag bit */
 33         TYPEDO,     /* i: same, but skip check     33         TYPEDO,     /* i: same, but skip check to exit inflate on new block */
 34         STORED,     /* i: waiting for stored s     34         STORED,     /* i: waiting for stored size (length and complement) */
 35         COPY_,      /* i/o: same as COPY below     35         COPY_,      /* i/o: same as COPY below, but only first time in */
 36         COPY,       /* i/o: waiting for input      36         COPY,       /* i/o: waiting for input or output to copy stored block */
 37         TABLE,      /* i: waiting for dynamic      37         TABLE,      /* i: waiting for dynamic block table lengths */
 38         LENLENS,    /* i: waiting for code len     38         LENLENS,    /* i: waiting for code length code lengths */
 39         CODELENS,   /* i: waiting for length/l     39         CODELENS,   /* i: waiting for length/lit and distance code lengths */
 40             LEN_,       /* i: same as LEN belo     40             LEN_,       /* i: same as LEN below, but only first time in */
 41             LEN,        /* i: waiting for leng     41             LEN,        /* i: waiting for length/lit/eob code */
 42             LENEXT,     /* i: waiting for leng     42             LENEXT,     /* i: waiting for length extra bits */
 43             DIST,       /* i: waiting for dist     43             DIST,       /* i: waiting for distance code */
 44             DISTEXT,    /* i: waiting for dist     44             DISTEXT,    /* i: waiting for distance extra bits */
 45             MATCH,      /* o: waiting for outp     45             MATCH,      /* o: waiting for output space to copy string */
 46             LIT,        /* o: waiting for outp     46             LIT,        /* o: waiting for output space to write literal */
 47     CHECK,      /* i: waiting for 32-bit check     47     CHECK,      /* i: waiting for 32-bit check value */
 48     LENGTH,     /* i: waiting for 32-bit lengt     48     LENGTH,     /* i: waiting for 32-bit length (gzip) */
 49     DONE,       /* finished check, done -- rem     49     DONE,       /* finished check, done -- remain here until reset */
 50     BAD,        /* got a data error -- remain      50     BAD,        /* got a data error -- remain here until reset */
 51     MEM,        /* got an inflate() memory err     51     MEM,        /* got an inflate() memory error -- remain here until reset */
 52     SYNC        /* looking for synchronization     52     SYNC        /* looking for synchronization bytes to restart inflate() */
 53 } inflate_mode;                                    53 } inflate_mode;
 54                                                    54 
 55 /*                                                 55 /*
 56     State transitions between above modes -        56     State transitions between above modes -
 57                                                    57 
 58     (most modes can go to BAD or MEM on error      58     (most modes can go to BAD or MEM on error -- not shown for clarity)
 59                                                    59 
 60     Process header:                                60     Process header:
 61         HEAD -> (gzip) or (zlib) or (raw)          61         HEAD -> (gzip) or (zlib) or (raw)
 62         (gzip) -> FLAGS -> TIME -> OS -> EXLEN     62         (gzip) -> FLAGS -> TIME -> OS -> EXLEN -> EXTRA -> NAME -> COMMENT ->
 63                   HCRC -> TYPE                     63                   HCRC -> TYPE
 64         (zlib) -> DICTID or TYPE                   64         (zlib) -> DICTID or TYPE
 65         DICTID -> DICT -> TYPE                     65         DICTID -> DICT -> TYPE
 66         (raw) -> TYPEDO                            66         (raw) -> TYPEDO
 67     Read deflate blocks:                           67     Read deflate blocks:
 68             TYPE -> TYPEDO -> STORED or TABLE      68             TYPE -> TYPEDO -> STORED or TABLE or LEN_ or CHECK
 69             STORED -> COPY_ -> COPY -> TYPE        69             STORED -> COPY_ -> COPY -> TYPE
 70             TABLE -> LENLENS -> CODELENS -> LE     70             TABLE -> LENLENS -> CODELENS -> LEN_
 71             LEN_ -> LEN                            71             LEN_ -> LEN
 72     Read deflate codes in fixed or dynamic blo     72     Read deflate codes in fixed or dynamic block:
 73                 LEN -> LENEXT or LIT or TYPE       73                 LEN -> LENEXT or LIT or TYPE
 74                 LENEXT -> DIST -> DISTEXT -> M     74                 LENEXT -> DIST -> DISTEXT -> MATCH -> LEN
 75                 LIT -> LEN                         75                 LIT -> LEN
 76     Process trailer:                               76     Process trailer:
 77         CHECK -> LENGTH -> DONE                    77         CHECK -> LENGTH -> DONE
 78  */                                                78  */
 79                                                    79 
 80 /* State maintained between inflate() calls --     80 /* State maintained between inflate() calls -- approximately 7K bytes, not
 81    including the allocated sliding window, whi     81    including the allocated sliding window, which is up to 32K bytes. */
 82 struct inflate_state {                             82 struct inflate_state {
 83     z_streamp strm;             /* pointer bac     83     z_streamp strm;             /* pointer back to this zlib stream */
 84     inflate_mode mode;          /* current inf     84     inflate_mode mode;          /* current inflate mode */
 85     int last;                   /* true if pro     85     int last;                   /* true if processing last block */
 86     int wrap;                   /* bit 0 true      86     int wrap;                   /* bit 0 true for zlib, bit 1 true for gzip,
 87                                    bit 2 true      87                                    bit 2 true to validate check value */
 88     int havedict;               /* true if dic     88     int havedict;               /* true if dictionary provided */
 89     int flags;                  /* gzip header     89     int flags;                  /* gzip header method and flags, 0 if zlib, or
 90                                    -1 if raw o     90                                    -1 if raw or no header yet */
 91     unsigned dmax;              /* zlib header     91     unsigned dmax;              /* zlib header max distance (INFLATE_STRICT) */
 92     unsigned long check;        /* protected c     92     unsigned long check;        /* protected copy of check value */
 93     unsigned long total;        /* protected c     93     unsigned long total;        /* protected copy of output count */
 94     gz_headerp head;            /* where to sa     94     gz_headerp head;            /* where to save gzip header information */
 95         /* sliding window */                       95         /* sliding window */
 96     unsigned wbits;             /* log base 2      96     unsigned wbits;             /* log base 2 of requested window size */
 97     unsigned wsize;             /* window size     97     unsigned wsize;             /* window size or zero if not using window */
 98     unsigned whave;             /* valid bytes     98     unsigned whave;             /* valid bytes in the window */
 99     unsigned wnext;             /* window writ     99     unsigned wnext;             /* window write index */
100     unsigned char FAR *window;  /* allocated s    100     unsigned char FAR *window;  /* allocated sliding window, if needed */
101         /* bit accumulator */                     101         /* bit accumulator */
102     unsigned long hold;         /* input bit a    102     unsigned long hold;         /* input bit accumulator */
103     unsigned bits;              /* number of b    103     unsigned bits;              /* number of bits in "in" */
104         /* for string and stored block copying    104         /* for string and stored block copying */
105     unsigned length;            /* literal or     105     unsigned length;            /* literal or length of data to copy */
106     unsigned offset;            /* distance ba    106     unsigned offset;            /* distance back to copy string from */
107         /* for table and code decoding */         107         /* for table and code decoding */
108     unsigned extra;             /* extra bits     108     unsigned extra;             /* extra bits needed */
109         /* fixed and dynamic code tables */       109         /* fixed and dynamic code tables */
110     code const FAR *lencode;    /* starting ta    110     code const FAR *lencode;    /* starting table for length/literal codes */
111     code const FAR *distcode;   /* starting ta    111     code const FAR *distcode;   /* starting table for distance codes */
112     unsigned lenbits;           /* index bits     112     unsigned lenbits;           /* index bits for lencode */
113     unsigned distbits;          /* index bits     113     unsigned distbits;          /* index bits for distcode */
114         /* dynamic table building */              114         /* dynamic table building */
115     unsigned ncode;             /* number of c    115     unsigned ncode;             /* number of code length code lengths */
116     unsigned nlen;              /* number of l    116     unsigned nlen;              /* number of length code lengths */
117     unsigned ndist;             /* number of d    117     unsigned ndist;             /* number of distance code lengths */
118     unsigned have;              /* number of c    118     unsigned have;              /* number of code lengths in lens[] */
119     code FAR *next;             /* next availa    119     code FAR *next;             /* next available space in codes[] */
120     unsigned short lens[320];   /* temporary s    120     unsigned short lens[320];   /* temporary storage for code lengths */
121     unsigned short work[288];   /* work area f    121     unsigned short work[288];   /* work area for code table building */
122     code codes[ENOUGH];         /* space for c    122     code codes[ENOUGH];         /* space for code tables */
123     int sane;                   /* if false, a    123     int sane;                   /* if false, allow invalid distance too far */
124     int back;                   /* bits back o    124     int back;                   /* bits back of last unprocessed length/lit */
125     unsigned was;               /* initial len    125     unsigned was;               /* initial length of match */
126 };                                                126 };
127                                                   127