diff --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; }