summaryrefslogtreecommitdiff
path: root/src/cairo-surface-snapshot.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-04-27 11:07:09 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2010-04-27 11:09:25 +0100
commit514d366cde689f8200b049834bebbd421d5d8bcb (patch)
tree66d44cae2c44da90498e0c8dba8c29acfca53df5 /src/cairo-surface-snapshot.c
parenta505104013a1db0c8b1092c8a1848d7f0b02e6bc (diff)
downloadcairo-514d366cde689f8200b049834bebbd421d5d8bcb.tar.gz
snapshot: propagate status on finish
Diffstat (limited to 'src/cairo-surface-snapshot.c')
-rw-r--r--src/cairo-surface-snapshot.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/cairo-surface-snapshot.c b/src/cairo-surface-snapshot.c
index 2f3b7922d..4277f66d6 100644
--- a/src/cairo-surface-snapshot.c
+++ b/src/cairo-surface-snapshot.c
@@ -46,11 +46,16 @@ static cairo_status_t
_cairo_surface_snapshot_finish (void *abstract_surface)
{
cairo_surface_snapshot_t *surface = abstract_surface;
+ cairo_status_t status = CAIRO_STATUS_SUCCESS;
- cairo_surface_finish (surface->clone);
- cairo_surface_destroy (surface->clone);
+ if (surface->clone != NULL) {
+ cairo_surface_finish (surface->clone);
+ status = surface->clone->status;
- return CAIRO_STATUS_SUCCESS;
+ cairo_surface_destroy (surface->clone);
+ }
+
+ return status;
}
static cairo_status_t