summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-op-run.c
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2016-07-07 15:34:04 +0200
committerTor Andersson <tor.andersson@artifex.com>2016-07-08 17:21:23 +0200
commit14a052d269e6a72890bb6762c093ef5f7a375b78 (patch)
tree34ef089bb61f9a31e86bbcdc395259b7f7889183 /source/pdf/pdf-op-run.c
parenta7c01fa4e8b6db64e4f061197320d3dc9ad63067 (diff)
downloadmupdf-14a052d269e6a72890bb6762c093ef5f7a375b78.tar.xz
Slim pdf_xobject struct: remove cached bbox field.
Diffstat (limited to 'source/pdf/pdf-op-run.c')
-rw-r--r--source/pdf/pdf-op-run.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/source/pdf/pdf-op-run.c b/source/pdf/pdf-op-run.c
index b529125a..3d82699f 100644
--- a/source/pdf/pdf-op-run.c
+++ b/source/pdf/pdf-op-run.c
@@ -118,7 +118,7 @@ begin_softmask(fz_context *ctx, pdf_run_processor *pr, softmask_save *save)
save->ctm = gstate->softmask_ctm;
save_ctm = gstate->ctm;
- mask_bbox = softmask->bbox;
+ pdf_xobject_bbox(ctx, softmask, &mask_bbox);
save_tm = pr->tm;
save_tlm = pr->tlm;
@@ -1218,11 +1218,14 @@ pdf_run_xobject(fz_context *ctx, pdf_run_processor *proc, pdf_xobject *xobj, pdf
int cleanup_state = 0;
char errmess[256] = "";
pdf_obj *resources;
+ fz_rect xobj_bbox;
/* Avoid infinite recursion */
if (xobj == NULL || pdf_mark_obj(ctx, xobj->obj))
return;
+ pdf_xobject_bbox(ctx, xobj, &xobj_bbox);
+
fz_var(cleanup_state);
fz_var(gstate);
fz_var(oldtop);
@@ -1248,7 +1251,8 @@ pdf_run_xobject(fz_context *ctx, pdf_run_processor *proc, pdf_xobject *xobj, pdf
/* apply soft mask, create transparency group and reset state */
if (xobj->transparency)
{
- fz_rect bbox = xobj->bbox;
+ fz_rect bbox;
+ bbox = xobj_bbox;
fz_transform_rect(&bbox, &gstate->ctm);
/* Remember that we tried to call begin_softmask. Even
@@ -1272,10 +1276,10 @@ pdf_run_xobject(fz_context *ctx, pdf_run_processor *proc, pdf_xobject *xobj, pdf
pdf_gsave(ctx, pr); /* Save here so the clippath doesn't persist */
/* clip to the bounds */
- fz_moveto(ctx, pr->path, xobj->bbox.x0, xobj->bbox.y0);
- fz_lineto(ctx, pr->path, xobj->bbox.x1, xobj->bbox.y0);
- fz_lineto(ctx, pr->path, xobj->bbox.x1, xobj->bbox.y1);
- fz_lineto(ctx, pr->path, xobj->bbox.x0, xobj->bbox.y1);
+ fz_moveto(ctx, pr->path, xobj_bbox.x0, xobj_bbox.y0);
+ fz_lineto(ctx, pr->path, xobj_bbox.x1, xobj_bbox.y0);
+ fz_lineto(ctx, pr->path, xobj_bbox.x1, xobj_bbox.y1);
+ fz_lineto(ctx, pr->path, xobj_bbox.x0, xobj_bbox.y1);
fz_closepath(ctx, pr->path);
pr->clip = 1;
pdf_show_path(ctx, pr, 0, 0, 0, 0);