summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-interpret.c
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2016-07-07 16:45:21 +0200
committerTor Andersson <tor.andersson@artifex.com>2016-07-08 17:21:24 +0200
commitb53e7a42f7cc9756ed9fa1fed313271e3ae67855 (patch)
tree189bf664a611479fb3c2d95e70fc58ce4e8ab0d7 /source/pdf/pdf-interpret.c
parenta2ee9c141864426708950c047d478ef7b9f0103c (diff)
downloadmupdf-b53e7a42f7cc9756ed9fa1fed313271e3ae67855.tar.xz
Slim pdf_xobject: remove cached colorspace field.
Diffstat (limited to 'source/pdf/pdf-interpret.c')
-rw-r--r--source/pdf/pdf-interpret.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/source/pdf/pdf-interpret.c b/source/pdf/pdf-interpret.c
index c4dfaf88..c895478f 100644
--- a/source/pdf/pdf-interpret.c
+++ b/source/pdf/pdf-interpret.c
@@ -431,6 +431,7 @@ pdf_process_extgstate(fz_context *ctx, pdf_processor *proc, pdf_csi *csi, pdf_ob
pdf_obj *group, *s, *bc, *tr;
float softmask_bc[FZ_MAX_COLORS];
fz_colorspace *colorspace;
+ int colorspace_n = 1;
int k, luminosity;
fz_var(xobj);
@@ -442,17 +443,20 @@ pdf_process_extgstate(fz_context *ctx, pdf_processor *proc, pdf_csi *csi, pdf_ob
fz_try(ctx)
{
- colorspace = xobj->colorspace;
- if (!colorspace)
- colorspace = fz_device_gray(ctx);
+ colorspace = pdf_xobject_colorspace(ctx, xobj);
+ if (colorspace)
+ {
+ colorspace_n = colorspace->n;
+ fz_drop_colorspace(ctx, colorspace);
+ }
- for (k = 0; k < colorspace->n; k++)
+ for (k = 0; k < colorspace_n; k++)
softmask_bc[k] = 0;
bc = pdf_dict_get(ctx, obj, PDF_NAME_BC);
if (pdf_is_array(ctx, bc))
{
- for (k = 0; k < colorspace->n; k++)
+ for (k = 0; k < colorspace_n; k++)
softmask_bc[k] = pdf_to_real(ctx, pdf_array_get(ctx, bc, k));
}