diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2011-10-12 14:50:41 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2011-10-12 14:50:41 +0100 |
commit | b2aa687de6f6c3bf915c492126101311395e2692 (patch) | |
tree | 8900e3e6a0f7cacb95db388af2c43d42ec708962 /src/cairo-spans-compositor.c | |
parent | 5d1a17f354987140719f439c6c105c05c9510839 (diff) | |
download | cairo-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.c | 8 |
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, |