summaryrefslogtreecommitdiff
path: root/src/cairo-surface-snapshot.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-03-22 13:05:23 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2010-03-22 13:05:23 +0000
commit48d847162558dc09388942a96ff443c253068d68 (patch)
treea015017f7d066d6e176fea15e975cc00c6737b56 /src/cairo-surface-snapshot.c
parentc87737c2bf983a8555b08c526050423a5eab5642 (diff)
downloadcairo-48d847162558dc09388942a96ff443c253068d68.tar.gz
recording: Cleanup the clip on error.
Whilst recording the commands, remember to cleanup the local clip after detecting an error.
Diffstat (limited to 'src/cairo-surface-snapshot.c')
-rw-r--r--src/cairo-surface-snapshot.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/cairo-surface-snapshot.c b/src/cairo-surface-snapshot.c
index 8ab6fa6c3..cbb6aa3d9 100644
--- a/src/cairo-surface-snapshot.c
+++ b/src/cairo-surface-snapshot.c
@@ -119,6 +119,7 @@ _cairo_surface_snapshot_copy_on_write (cairo_surface_t *surface)
status = _cairo_surface_acquire_source_image (snapshot->target, &image, &extra);
if (unlikely (status)) {
snapshot->target = _cairo_surface_create_in_error (status);
+ status = _cairo_surface_set_error (surface, status);
return;
}
@@ -140,6 +141,7 @@ _cairo_surface_snapshot_copy_on_write (cairo_surface_t *surface)
snapshot->clone = &clone->base;
} else {
snapshot->clone = &clone->base;
+ status = _cairo_surface_set_error (surface, clone->base.status);
}
_cairo_surface_release_source_image (snapshot->target, image, extra);