diff options
-rw-r--r-- | src/cairo-pdf-surface.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/cairo-pdf-surface.c b/src/cairo-pdf-surface.c index 552e4bf4f..db5006294 100644 --- a/src/cairo-pdf-surface.c +++ b/src/cairo-pdf-surface.c @@ -1101,18 +1101,22 @@ _cairo_pdf_surface_create_smask_group (cairo_pdf_surface_t *surface, static void _cairo_pdf_smask_group_destroy (cairo_pdf_smask_group_t *group) { + if(group != NULL) + { if (group->operation == PDF_FILL || group->operation == PDF_STROKE) - _cairo_path_fixed_fini (&group->path); + _cairo_path_fixed_fini (&group->path); if (group->source) - cairo_pattern_destroy (group->source); + cairo_pattern_destroy (group->source); if (group->mask) - cairo_pattern_destroy (group->mask); + cairo_pattern_destroy (group->mask); free (group->utf8); free (group->glyphs); free (group->clusters); if (group->scaled_font) - cairo_scaled_font_destroy (group->scaled_font); + cairo_scaled_font_destroy (group->scaled_font); free (group); + group = NULL; + } } static cairo_int_status_t |