diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-03-23 20:53:11 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-03-23 20:53:11 +0000 |
commit | 6da3cea3564bd8c5de37bf2244a2dd656202e4ec (patch) | |
tree | dabf30ffab6c59f538f5bd70f67b972a91300617 /src/cairo-scaled-font.c | |
parent | 548092fe8c9af1423a10e9566cbc4315d2f28efc (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.c | 11 |
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; } |