summaryrefslogtreecommitdiff
path: root/src/cairo-clip-boxes.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-09-30 15:58:14 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-09-30 15:58:14 +0100
commit538fa0d6fbfe5f03b325e2dfb296538295f3b409 (patch)
treebf026f434a73e9aab71fc8b133e82755a0b45ae3 /src/cairo-clip-boxes.c
parent719bef0c90b73850e373c70d627fa1f730be84a1 (diff)
downloadcairo-538fa0d6fbfe5f03b325e2dfb296538295f3b409.tar.gz
fill: Fix unantialiased rectilinear-fill-to-boxes
We were calling the antialias close function from the unantialiased paths - a function that operates on a completely different structure to the one passed in. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-clip-boxes.c')
-rw-r--r--src/cairo-clip-boxes.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/cairo-clip-boxes.c b/src/cairo-clip-boxes.c
index 3b8265b9c..16f5f7fc2 100644
--- a/src/cairo-clip-boxes.c
+++ b/src/cairo-clip-boxes.c
@@ -142,7 +142,7 @@ _cairo_clip_intersect_rectilinear_path (cairo_clip_t *clip,
fill_rule,
antialias,
&boxes);
- if (likely (status == CAIRO_STATUS_SUCCESS))
+ if (likely (status == CAIRO_STATUS_SUCCESS && boxes.num_boxes))
clip = _cairo_clip_intersect_boxes (clip, &boxes);
else
clip = _cairo_clip_set_all_clipped (clip);
@@ -297,7 +297,9 @@ _cairo_clip_intersect_boxes (cairo_clip_t *clip,
boxes = &clip_boxes;
}
- if (boxes->num_boxes == 1) {
+ if (boxes->num_boxes == 0) {
+ return _cairo_clip_set_all_clipped (clip);
+ } else if (boxes->num_boxes == 1) {
clip->boxes = &clip->embedded_box;
clip->boxes[0] = boxes->chunks.base[0];
clip->num_boxes = 1;