From 87a432f69dfd89d58c2543b4ff202878d3ddcf6c Mon Sep 17 00:00:00 2001 From: John Darrington Date: Sat, 14 Jul 2012 13:42:00 +0200 Subject: [PATCH] cairo.c (apply_options): Fix potential memory leak This function may be called more than once. So we need to deallocte the old values before creating new ones --- src/output/cairo.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/output/cairo.c b/src/output/cairo.c index a98df2e6c1..da5740464e 100644 --- a/src/output/cairo.c +++ b/src/output/cairo.c @@ -249,9 +249,18 @@ apply_options (struct xr_driver *xr, struct string_map *o) { struct output_driver *d = &xr->driver; - int paper_width, paper_length; + int paper_width, paper_length, i; int font_points = parse_int (opt (d, o, "font-size", "10000"), 1000, 1000000); + + for (i = 0; i < XR_N_FONTS; i++) + { + struct xr_font *font = &xr->fonts[i]; + + if (font->desc != NULL) + pango_font_description_free (font->desc); + } + xr->fonts[XR_FONT_FIXED].desc = parse_font (d, o, "fixed-font", "monospace", font_points); xr->fonts[XR_FONT_PROPORTIONAL].desc = parse_font (d, o, "prop-font", -- 2.30.2