summaryrefslogtreecommitdiff
path: root/src/cairo-scaled-font.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-03-23 20:53:11 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2010-03-23 20:53:11 +0000
commit6da3cea3564bd8c5de37bf2244a2dd656202e4ec (patch)
treedabf30ffab6c59f538f5bd70f67b972a91300617 /src/cairo-scaled-font.c
parent548092fe8c9af1423a10e9566cbc4315d2f28efc (diff)
scaled-font: Destroy the old surface when replacing scaled_glyph->recording
Diffstat (limited to 'src/cairo-scaled-font.c')
-rw-r--r--src/cairo-scaled-font.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/cairo-scaled-font.c b/src/cairo-scaled-font.c
index b6d0df64..c2ba4070 100644
--- a/src/cairo-scaled-font.c
+++ b/src/cairo-scaled-font.c
@@ -198,8 +198,10 @@ _cairo_scaled_glyph_fini (cairo_scaled_font_t *scaled_font,
if (scaled_glyph->path != NULL)
_cairo_path_fixed_destroy (scaled_glyph->path);
- if (scaled_glyph->recording_surface != NULL)
+ if (scaled_glyph->recording_surface != NULL) {
+ cairo_surface_finish (scaled_glyph->recording_surface);
cairo_surface_destroy (scaled_glyph->recording_surface);
+ }
}
#define ZOMBIE 0
@@ -2511,8 +2513,11 @@ _cairo_scaled_glyph_set_recording_surface (cairo_scaled_glyph_t *scaled_glyph,
cairo_scaled_font_t *scaled_font,
cairo_surface_t *recording_surface)
{
- if (scaled_glyph->recording_surface != NULL)
- cairo_surface_destroy (recording_surface);
+ if (scaled_glyph->recording_surface != NULL) {
+ cairo_surface_finish (scaled_glyph->recording_surface);
+ cairo_surface_destroy (scaled_glyph->recording_surface);
+ }
+
scaled_glyph->recording_surface = recording_surface;
}