summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cairo-clip.c6
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);