summaryrefslogtreecommitdiff
path: root/source/xps
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2015-01-20 15:27:34 +0100
committerTor Andersson <tor.andersson@artifex.com>2015-02-17 16:31:34 +0100
commitb9d11456411907e9add8d91b02d67842990c2952 (patch)
treeca29439a35e83948645481cf0d0dfca445bf8b03 /source/xps
parent4fe9caafead64704a16c7093b72115893be3087f (diff)
downloadmupdf-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.c2
-rw-r--r--source/xps/xps-path.c6
-rw-r--r--source/xps/xps-tile.c2
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);
}