From 913afb9174bb474104049906c1382dec81826424 Mon Sep 17 00:00:00 2001 From: Mark Adler Date: Fri, 9 Sep 2011 22:52:17 -0700 Subject: zlib 0.79 --- infblock.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'infblock.c') diff --git a/infblock.c b/infblock.c index 3a58280..4d8bd48 100644 --- a/infblock.c +++ b/infblock.c @@ -60,16 +60,17 @@ local uInt border[] = { /* Order of the bit length code lengths */ the two sets of lengths. */ -struct inflate_blocks_state *inflate_blocks_new(z,wsize) +struct inflate_blocks_state *inflate_blocks_new(z, c, w) z_stream *z; -uInt wsize; +check_func c; +uInt w; { struct inflate_blocks_state *s; if ((s = (struct inflate_blocks_state *)ZALLOC (z,1,sizeof(struct inflate_blocks_state))) == Z_NULL) return s; - if ((s->window = (Byte *)ZALLOC(z,1,wsize)) == Z_NULL) + if ((s->window = (Byte *)ZALLOC(z, 1, w)) == Z_NULL) { ZFREE(z, s); return Z_NULL; @@ -77,8 +78,10 @@ uInt wsize; s->mode = TYPE; s->bitk = 0; s->read = s->write = s->window; - s->end = s->window + wsize; - s->check = 1; + s->end = s->window + w; + s->checkfn = c; + if (s->checkfn != Z_NULL) + s->check = (*s->checkfn)(0L, Z_NULL, 0); return s; } @@ -312,8 +315,9 @@ z_stream *z; uLong *c; int *e; { - *e = s->bitk > 7 ? (s->bitb >> (s->bitk & 7)) & 0xff : -1; - *c = s->check; + *e = (int)(s->bitk > 7 ? (s->bitb >> (s->bitk & 7)) & 0xff : -1); + if (s->checkfn != Z_NULL) + *c = s->check; if (s->mode == BTREE || s->mode == DTREE) ZFREE(z, s->sub.trees.blens); if (s->mode == CODES) -- cgit v1.2.3-55-g6feb