diff options
-rw-r--r-- | src/cairo-clip.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/cairo-clip.c b/src/cairo-clip.c index 7c3a1d55..0b511255 100644 --- a/src/cairo-clip.c +++ b/src/cairo-clip.c @@ -443,6 +443,12 @@ _cairo_clip_path_reapply_clip_path_translate (cairo_clip_t *clip, clip_path->flags = other_path->flags; if (other_path->region != NULL) { clip_path->region = cairo_region_copy (other_path->region); + if (unlikely (status = clip_path->region->status)) { + clip->path = clip->path->prev; + _cairo_clip_path_destroy (clip_path); + return status; + } + cairo_region_translate (clip_path->region, tx, ty); } clip_path->surface = cairo_surface_reference (other_path->surface); |