diff --git a/src/cairo-scaled-font.c b/src/cairo-scaled-font.c index 9de92e067..812a80828 100644 --- a/src/cairo-scaled-font.c +++ b/src/cairo-scaled-font.c @@ -1063,6 +1063,10 @@ cairo_scaled_font_create (cairo_font_face_t *font_face, _cairo_scaled_font_map_unlock (); + cairo_scaled_font_destroy (old); + if (font_face != original_font_face) + cairo_font_face_destroy (font_face); + if (unlikely (status)) { /* We can't call _cairo_scaled_font_destroy here since it expects * that the font has already been successfully inserted into the @@ -1072,11 +1076,6 @@ cairo_scaled_font_create (cairo_font_face_t *font_face, return _cairo_scaled_font_create_in_error (status); } - cairo_scaled_font_destroy (old); - - if (font_face != original_font_face) - cairo_font_face_destroy (font_face); - return scaled_font; } slim_hidden_def (cairo_scaled_font_create);