From 6da3cea3564bd8c5de37bf2244a2dd656202e4ec Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Tue, 23 Mar 2010 20:53:11 +0000 Subject: [PATCH] scaled-font: Destroy the old surface when replacing scaled_glyph->recording --- src/cairo-scaled-font.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/cairo-scaled-font.c b/src/cairo-scaled-font.c index b6d0df64b..c2ba40701 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; }