diff options
author | Sebastian Rasmussen <sebras@hotmail.com> | 2010-08-02 00:22:25 +0000 |
---|---|---|
committer | Sebastian Rasmussen <sebras@hotmail.com> | 2010-08-02 00:22:25 +0000 |
commit | ecbeea576bab0488995154b63c8a99d8c07b5362 (patch) | |
tree | 590af0c7a47932102a047fb621d9ec7af8f2f60f /fitz | |
parent | a5b341660d2ca416498d3b626c446d27e33b7bd8 (diff) | |
download | mupdf-ecbeea576bab0488995154b63c8a99d8c07b5362.tar.xz |
Put bytes not consumed by DCT decoder back into stream and make sure that state is always torn down.
Diffstat (limited to 'fitz')
-rw-r--r-- | fitz/filt_dctd.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fitz/filt_dctd.c b/fitz/filt_dctd.c index e260b34c..daa66902 100644 --- a/fitz/filt_dctd.c +++ b/fitz/filt_dctd.c @@ -161,8 +161,6 @@ readdctd(fz_stream *stm, unsigned char *buf, int len) if (cinfo->output_scanline == cinfo->output_height) { state->done = 1; - jpeg_finish_decompress(cinfo); - jpeg_destroy_decompress(cinfo); return p - buf; } @@ -188,6 +186,9 @@ static void closedctd(fz_stream *stm) { fz_dctd *state = stm->state; + jpeg_finish_decompress(&state->cinfo); + jpeg_destroy_decompress(&state->cinfo); + state->chain->rp = state->chain->wp - state->cinfo.src->bytes_in_buffer; fz_free(state->scanline); fz_close(state->chain); fz_free(state); |