diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2023-01-18 23:18:13 -0700 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2023-01-18 23:19:12 -0700 |
commit | a32ddef9d9261e83493932464b43f5cebb9f46ef (patch) | |
tree | 1dbe82fd1064db40d303afb38dd183463e190573 /src/cairo-gstate.c | |
parent | 2c557d7ceac792bff21d946b288f6fc2d54cb73a (diff) | |
download | cairo-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.c | 4 |
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 |