summaryrefslogtreecommitdiff
path: root/src/cairo-spans-compositor.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-10-12 14:50:41 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-10-12 14:50:41 +0100
commitb2aa687de6f6c3bf915c492126101311395e2692 (patch)
tree8900e3e6a0f7cacb95db388af2c43d42ec708962 /src/cairo-spans-compositor.c
parent5d1a17f354987140719f439c6c105c05c9510839 (diff)
downloadcairo-b2aa687de6f6c3bf915c492126101311395e2692.tar.gz
spans: Propagate internal status when retrieving the clip surface
Including the information that there is nothing to do due to being all-clipped-out. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-spans-compositor.c')
-rw-r--r--src/cairo-spans-compositor.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/cairo-spans-compositor.c b/src/cairo-spans-compositor.c
index 9d7b0ac7b..a4efa4848 100644
--- a/src/cairo-spans-compositor.c
+++ b/src/cairo-spans-compositor.c
@@ -212,7 +212,7 @@ cleanup_polygon:
_cairo_polygon_fini (&polygon);
error:
cairo_surface_destroy (surface);
- return _cairo_surface_create_in_error (status);
+ return _cairo_int_surface_create_in_error (status);
}
static cairo_int_status_t
@@ -226,8 +226,12 @@ fixup_unbounded_mask (const cairo_spans_compositor_t *compositor,
clip = get_clip_surface (compositor, extents->surface, extents->clip,
&extents->unbounded);
- if (unlikely (clip->status))
+ if (unlikely (clip->status)) {
+ if ((cairo_int_status_t)clip->status == CAIRO_INT_STATUS_NOTHING_TO_DO)
+ return CAIRO_STATUS_SUCCESS;
+
return clip->status;
+ }
status = _cairo_composite_rectangles_init_for_boxes (&composite,
extents->surface,