diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2011-09-30 15:58:14 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2011-09-30 15:58:14 +0100 |
commit | 538fa0d6fbfe5f03b325e2dfb296538295f3b409 (patch) | |
tree | bf026f434a73e9aab71fc8b133e82755a0b45ae3 /src/cairo-clip-boxes.c | |
parent | 719bef0c90b73850e373c70d627fa1f730be84a1 (diff) | |
download | cairo-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.c | 6 |
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; |