rendered paste bodydiff --git a/src/cairo-ps-surface.c b/src/cairo-ps-surface.c
index 87566d2..abd7fa6 100644
--- a/src/cairo-ps-surface.c
+++ b/src/cairo-ps-surface.c
@@ -716,19 +716,21 @@ _cairo_ps_surface_emit_scaled_font_subset (cairo_scaled_font_subset_t *font_subs
static cairo_status_t
_cairo_ps_surface_emit_font_subsets (cairo_ps_surface_t *surface)
{
- cairo_status_t status;
+ cairo_status_t status = CAIRO_STATUS_SUCCESS;
_cairo_output_stream_printf (surface->final_stream,
"%% _cairo_ps_surface_emit_font_subsets\n");
- status = _cairo_scaled_font_subsets_foreach_unscaled (surface->font_subsets,
- _cairo_ps_surface_emit_unscaled_font_subset,
- surface);
- status = _cairo_scaled_font_subsets_foreach_scaled (surface->font_subsets,
- _cairo_ps_surface_emit_scaled_font_subset,
- surface);
- _cairo_scaled_font_subsets_destroy (surface->font_subsets);
- surface->font_subsets = NULL;
+ if (surface->font_subsets != NULL) {
+ status = _cairo_scaled_font_subsets_foreach_unscaled (surface->font_subsets,
+ _cairo_ps_surface_emit_unscaled_font_subset,
+ surface);
+ status = _cairo_scaled_font_subsets_foreach_scaled (surface->font_subsets,
+ _cairo_ps_surface_emit_scaled_font_subset,
+ surface);
+ _cairo_scaled_font_subsets_destroy (surface->font_subsets);
+ surface->font_subsets = NULL;
+ }
return status;
}