diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2016-07-07 15:34:04 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2016-07-08 17:21:23 +0200 |
commit | 14a052d269e6a72890bb6762c093ef5f7a375b78 (patch) | |
tree | 34ef089bb61f9a31e86bbcdc395259b7f7889183 /source/pdf/pdf-op-run.c | |
parent | a7c01fa4e8b6db64e4f061197320d3dc9ad63067 (diff) | |
download | mupdf-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.c | 16 |
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); |