diff options
author | Mark Adler <madler@alumni.caltech.edu> | 2011-09-09 23:09:18 -0700 |
---|---|---|
committer | Mark Adler <madler@alumni.caltech.edu> | 2011-09-09 23:09:18 -0700 |
commit | 23c69f10698301ae97709eb0bbfb371d66b99a08 (patch) | |
tree | 1956b671b3df8d12c315a38f33b190677ccd659e /infcodes.c | |
parent | 6b834a58bdef976383cff6e2a83f353e668a9cf1 (diff) |
zlib 0.94
Diffstat (limited to 'infcodes.c')
-rw-r--r-- | infcodes.c | 27 |
1 files changed, 17 insertions, 10 deletions
@@ -5,9 +5,10 @@ #include "zutil.h" #include "inftrees.h" +#include "infblock.h" +#include "infcodes.h" #include "infutil.h" #include "inffast.h" -#include "infcodes.h" /* simplify the use of the inflate_huft type with some defines */ #define base more.Base @@ -55,14 +56,14 @@ struct inflate_codes_state { }; -struct inflate_codes_state *inflate_codes_new(bl, bd, tl, td, z) +inflate_codes_statef *inflate_codes_new(bl, bd, tl, td, z) uInt bl, bd; inflate_huft *tl, *td; z_stream *z; { - struct inflate_codes_state *c; + inflate_codes_statef *c; - if ((c = (struct inflate_codes_state *) + if ((c = (inflate_codes_statef *) ZALLOC(z,1,sizeof(struct inflate_codes_state))) != Z_NULL) { c->mode = START; @@ -77,7 +78,7 @@ z_stream *z; int inflate_codes(s, z, r) -struct inflate_blocks_state *s; +inflate_blocks_statef *s; z_stream *z; int r; { @@ -86,12 +87,12 @@ int r; uInt e; /* extra bits or operation */ uLong b; /* bit buffer */ uInt k; /* bits in bit buffer */ - Byte *p; /* input data pointer */ + Bytef *p; /* input data pointer */ uInt n; /* bytes available there */ - Byte *q; /* output window write pointer */ + Bytef *q; /* output window write pointer */ uInt m; /* bytes to end of window or read pointer */ - Byte *f; /* pointer to copy strings from */ - struct inflate_codes_state *c = s->sub.decode.codes; /* codes state */ + Bytef *f; /* pointer to copy strings from */ + inflate_codes_statef *c = s->sub.decode.codes; /* codes state */ /* copy input/output information to locals (UPDATE macro restores) */ LOAD @@ -194,9 +195,15 @@ int r; Tracevv((stderr, "inflate: distance %u\n", c->sub.copy.dist)); c->mode = COPY; case COPY: /* o: copying bytes in window, waiting for space */ +#ifndef __TURBOC__ /* Turbo C bug for following expression */ f = (uInt)(q - s->window) < c->sub.copy.dist ? s->end - (c->sub.copy.dist - (q - s->window)) : q - c->sub.copy.dist; +#else + f = q - c->sub.copy.dist; + if ((uInt)(q - s->window) < c->sub.copy.dist) + f = s->end - (c->sub.copy.dist - (q - s->window)); +#endif while (c->len) { NEEDOUT @@ -231,7 +238,7 @@ int r; void inflate_codes_free(c, z) -struct inflate_codes_state *c; +inflate_codes_statef *c; z_stream *z; { ZFREE(z, c); |