state->hold = 0;
state->bits = 0;
state->lencode = state->distcode = state->next = state->codes;
+ if (strm->outcb != Z_NULL)
+ (*strm->outcb)(Z_NULL, 0);
Tracev((stderr, "inflate: reset\n"));
return Z_OK;
}
if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0)
return Z_STREAM_ERROR;
state = (struct inflate_state FAR *)strm->state;
- if (state->window != Z_NULL) ZFREE(strm, state->window);
+ if (state->window != Z_NULL) {
+ if (strm->outcb != Z_NULL)
+ (*strm->outcb)(Z_NULL, 0);
+ ZFREE(strm, state->window);
+ }
ZFREE(strm, strm->state);
strm->state = Z_NULL;
Tracev((stderr, "inflate: end\n"));