summaryrefslogtreecommitdiff
path: root/src/cairo-gstate.c
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2023-01-18 23:18:13 -0700
committerBehdad Esfahbod <behdad@behdad.org>2023-01-18 23:19:12 -0700
commita32ddef9d9261e83493932464b43f5cebb9f46ef (patch)
tree1dbe82fd1064db40d303afb38dd183463e190573 /src/cairo-gstate.c
parent2c557d7ceac792bff21d946b288f6fc2d54cb73a (diff)
downloadcairo-a32ddef9d9261e83493932464b43f5cebb9f46ef.tar.gz
[gstate] Fix cairo_font_options_t memory management
cairo_font_options_t has grown to have malloc'ed memory, so the previous code was leaking, and double-freeing.
Diffstat (limited to 'src/cairo-gstate.c')
-rw-r--r--src/cairo-gstate.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/cairo-gstate.c b/src/cairo-gstate.c
index a8c67e718..0d52491c9 100644
--- a/src/cairo-gstate.c
+++ b/src/cairo-gstate.c
@@ -1753,6 +1753,7 @@ _cairo_gstate_set_font_options (cairo_gstate_t *gstate,
_cairo_gstate_unset_scaled_font (gstate);
+ _cairo_font_options_fini (&gstate->font_options);
_cairo_font_options_init_copy (&gstate->font_options, options);
}
@@ -1760,7 +1761,8 @@ void
_cairo_gstate_get_font_options (cairo_gstate_t *gstate,
cairo_font_options_t *options)
{
- *options = gstate->font_options;
+ _cairo_font_options_fini (options);
+ _cairo_font_options_init_copy (options, &gstate->font_options);
}
cairo_status_t