summaryrefslogtreecommitdiff
path: root/source/fitz
diff options
context:
space:
mode:
authorRobin Watts <robin.watts@artifex.com>2016-07-13 16:37:00 +0100
committerRobin Watts <robin.watts@artifex.com>2016-07-13 16:37:34 +0100
commitff7608ffe1b0030ada5ace05ed328ace276e34bc (patch)
tree968aa77d5842774a183a849a5a8ea576f0e3f09e /source/fitz
parentfea3e4836337cc6eaa037ed66f073f19b061e16a (diff)
downloadmupdf-ff7608ffe1b0030ada5ace05ed328ace276e34bc.tar.xz
Fix memory leaks in SVG device.
Diffstat (limited to 'source/fitz')
-rw-r--r--source/fitz/svg-device.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/source/fitz/svg-device.c b/source/fitz/svg-device.c
index 5a3657b3..2ca56796 100644
--- a/source/fitz/svg-device.c
+++ b/source/fitz/svg-device.c
@@ -379,6 +379,7 @@ svg_dev_text_span_as_paths_defs(fz_context *ctx, fz_device *dev, fz_text_span *s
fz_printf(ctx, out, "<path");
svg_dev_path(ctx, sdev, path);
fz_printf(ctx, out, "/>\n");
+ fz_drop_path(ctx, path);
}
else
{
@@ -1084,9 +1085,17 @@ static void
svg_dev_drop_device(fz_context *ctx, fz_device *dev)
{
svg_device *sdev = (svg_device*)dev;
+ int i;
+
fz_free(ctx, sdev->tiles);
fz_drop_buffer(ctx, sdev->defs_buffer);
fz_drop_output(ctx, sdev->defs);
+ for (i = 0; i < sdev->num_fonts; i++)
+ {
+ fz_drop_font(ctx, sdev->fonts[i].font);
+ fz_free(ctx, sdev->fonts[i].sentlist);
+ }
+ fz_free(ctx, sdev->fonts);
}
fz_device *fz_new_svg_device(fz_context *ctx, fz_output *out, float page_width, float page_height)