diff options
Diffstat (limited to 'source/pdf/pdf-stream.c')
-rw-r--r-- | source/pdf/pdf-stream.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source/pdf/pdf-stream.c b/source/pdf/pdf-stream.c index f52539cf..29301f5d 100644 --- a/source/pdf/pdf-stream.c +++ b/source/pdf/pdf-stream.c @@ -173,6 +173,7 @@ build_filter(fz_context *ctx, fz_stream *chain, pdf_document *doc, pdf_obj *f, p { fz_compression_params local_params; + local_params.u.jbig2.globals = NULL; if (params == NULL) params = &local_params; @@ -184,6 +185,18 @@ build_filter(fz_context *ctx, fz_stream *chain, pdf_document *doc, pdf_obj *f, p if (params != &local_params && params->type != FZ_IMAGE_RAW) return fz_keep_stream(ctx, chain); /* nothing to do */ + else if (params->type == FZ_IMAGE_JBIG2) + { + fz_stream *stm; + fz_try(ctx) + stm = fz_open_image_decomp_stream(ctx, chain, params, NULL); + fz_always(ctx) + fz_drop_jbig2_globals(ctx, local_params.u.jbig2.globals); + fz_catch(ctx) + fz_rethrow(ctx); + return stm; + } + else if (params->type != FZ_IMAGE_RAW) return fz_open_image_decomp_stream(ctx, chain, params, NULL); |