summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fitz/filt_dctd.c5
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);