diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2015-01-20 15:27:34 +0100 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2015-02-17 16:31:34 +0100 |
commit | b9d11456411907e9add8d91b02d67842990c2952 (patch) | |
tree | ca29439a35e83948645481cf0d0dfca445bf8b03 /source/xps | |
parent | 4fe9caafead64704a16c7093b72115893be3087f (diff) | |
download | mupdf-b9d11456411907e9add8d91b02d67842990c2952.tar.xz |
Reference count fz_path and fz_text.
Disallow modification of shared fz_path and fz_text objects.
They should follow a create once, consume often pattern, and as such should
be immutable once created.
Diffstat (limited to 'source/xps')
-rw-r--r-- | source/xps/xps-glyphs.c | 2 | ||||
-rw-r--r-- | source/xps/xps-path.c | 6 | ||||
-rw-r--r-- | source/xps/xps-tile.c | 2 |
3 files changed, 5 insertions, 5 deletions
diff --git a/source/xps/xps-glyphs.c b/source/xps/xps-glyphs.c index ee16fb6f..d2a786fe 100644 --- a/source/xps/xps-glyphs.c +++ b/source/xps/xps-glyphs.c @@ -622,7 +622,7 @@ xps_parse_glyphs(xps_document *doc, const fz_matrix *ctm, xps_end_opacity(doc, opacity_mask_uri, dict, opacity_att, opacity_mask_tag); - fz_free_text(doc->ctx, text); + fz_drop_text(doc->ctx, text); if (clip_att || clip_tag) fz_pop_clip(doc->dev); diff --git a/source/xps/xps-path.c b/source/xps/xps-path.c index 49240ee4..ee412d64 100644 --- a/source/xps/xps-path.c +++ b/source/xps/xps-path.c @@ -775,7 +775,7 @@ xps_clip(xps_document *doc, const fz_matrix *ctm, xps_resource *dict, char *clip else path = fz_new_path(doc->ctx); fz_clip_path(doc->dev, path, NULL, fill_rule == 0, ctm); - fz_free_path(doc->ctx, path); + fz_drop_path(doc->ctx, path); } /* @@ -1049,8 +1049,8 @@ xps_parse_path(xps_document *doc, const fz_matrix *ctm, char *base_uri, xps_reso xps_end_opacity(doc, opacity_mask_uri, dict, opacity_att, opacity_mask_tag); if (stroke_path != path) - fz_free_path(doc->ctx, stroke_path); - fz_free_path(doc->ctx, path); + fz_drop_path(doc->ctx, stroke_path); + fz_drop_path(doc->ctx, path); path = NULL; fz_drop_stroke_state(doc->ctx, stroke); diff --git a/source/xps/xps-tile.c b/source/xps/xps-tile.c index b65981a2..5f966619 100644 --- a/source/xps/xps-tile.c +++ b/source/xps/xps-tile.c @@ -28,7 +28,7 @@ xps_paint_tiling_brush_clipped(xps_document *doc, const fz_matrix *ctm, const fz fz_lineto(doc->ctx, path, viewbox->x1, viewbox->y0); fz_closepath(doc->ctx, path); fz_clip_path(doc->dev, path, NULL, 0, ctm); - fz_free_path(doc->ctx, path); + fz_drop_path(doc->ctx, path); c->func(doc, ctm, viewbox, c->base_uri, c->dict, c->root, c->user); fz_pop_clip(doc->dev); } |