diff options
Diffstat (limited to 'source/fitz/compressed-buffer.c')
-rw-r--r-- | source/fitz/compressed-buffer.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/source/fitz/compressed-buffer.c b/source/fitz/compressed-buffer.c index 85890c72..d1c73351 100644 --- a/source/fitz/compressed-buffer.c +++ b/source/fitz/compressed-buffer.c @@ -27,7 +27,8 @@ fz_open_image_decomp_stream(fz_context *ctx, fz_stream *chain, fz_compression_pa switch (params->type) { case FZ_IMAGE_FAX: - *l2factor = 0; + if (l2factor) + *l2factor = 0; return fz_open_faxd(ctx, chain, params->u.fax.k, params->u.fax.end_of_line, @@ -37,26 +38,30 @@ fz_open_image_decomp_stream(fz_context *ctx, fz_stream *chain, fz_compression_pa params->u.fax.end_of_block, params->u.fax.black_is_1); case FZ_IMAGE_JPEG: - if (*l2factor > 3) + if (l2factor && *l2factor > 3) *l2factor = 3; - return fz_open_dctd(ctx, chain, params->u.jpeg.color_transform, *l2factor, NULL); + return fz_open_dctd(ctx, chain, params->u.jpeg.color_transform, l2factor ? *l2factor : 0, NULL); case FZ_IMAGE_RLD: - *l2factor = 0; + if (l2factor) + *l2factor = 0; return fz_open_rld(ctx, chain); case FZ_IMAGE_FLATE: - *l2factor = 0; + if (l2factor) + *l2factor = 0; chain = fz_open_flated(ctx, chain, 15); if (params->u.flate.predictor > 1) chain = fz_open_predict(ctx, chain, params->u.flate.predictor, params->u.flate.columns, params->u.flate.colors, params->u.flate.bpc); return chain; case FZ_IMAGE_LZW: - *l2factor = 0; + if (l2factor) + *l2factor = 0; chain = fz_open_lzwd(ctx, chain, params->u.lzw.early_change); if (params->u.lzw.predictor > 1) chain = fz_open_predict(ctx, chain, params->u.lzw.predictor, params->u.lzw.columns, params->u.lzw.colors, params->u.lzw.bpc); return chain; default: - *l2factor = 0; + if (l2factor) + *l2factor = 0; break; } |