diff --git a/src/cairo-polygon.c b/src/cairo-polygon.c index 6ed0165eb..52c72b710 100644 --- a/src/cairo-polygon.c +++ b/src/cairo-polygon.c @@ -56,7 +56,7 @@ _cairo_polygon_init (cairo_polygon_t *polygon) void _cairo_polygon_fini (cairo_polygon_t *polygon) { - if (polygon->edges != polygon->edges_embedded) + if (polygon->edges && polygon->edges != polygon->edges_embedded) free (polygon->edges); polygon->edges = NULL; diff --git a/src/cairo-spline.c b/src/cairo-spline.c index 3fd0f13ef..3624bfc34 100644 --- a/src/cairo-spline.c +++ b/src/cairo-spline.c @@ -90,7 +90,7 @@ _cairo_spline_init (cairo_spline_t *spline, void _cairo_spline_fini (cairo_spline_t *spline) { - if (spline->points != spline->points_embedded) + if (spline->points && spline->points != spline->points_embedded) free (spline->points); spline->points = NULL; diff --git a/src/cairo-traps.c b/src/cairo-traps.c index 04228c134..b767db844 100644 --- a/src/cairo-traps.c +++ b/src/cairo-traps.c @@ -77,7 +77,7 @@ _cairo_traps_init (cairo_traps_t *traps) void _cairo_traps_fini (cairo_traps_t *traps) { - if (traps->traps != traps->traps_embedded) + if (traps->traps && traps->traps != traps->traps_embedded) free (traps->traps); traps->traps = NULL;