summaryrefslogtreecommitdiff
path: root/src/cairo-spans-compositor.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-10-12 17:04:16 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-10-12 17:04:16 +0100
commit8f34fa033e741eed040ff8895fcb94b8507903b8 (patch)
treef58bba2c6747b9879d97758b0855dbe5bacb305e /src/cairo-spans-compositor.c
parentd576319e1346712a54802f372f742a24dbcdadd9 (diff)
downloadcairo-8f34fa033e741eed040ff8895fcb94b8507903b8.tar.gz
spans: Refresh polygon limits after trimming the composite extents
Trimming the composite extents may result in the clip being reconstructed, but we the polygon continued to hold a reference into the freed clip's array of boxes. So if we intend to reuse the polygon limits after performing the clip we need to refresh them. 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.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/cairo-spans-compositor.c b/src/cairo-spans-compositor.c
index a4efa4848..468f3386c 100644
--- a/src/cairo-spans-compositor.c
+++ b/src/cairo-spans-compositor.c
@@ -810,6 +810,9 @@ clip_and_composite_polygon (const cairo_spans_compositor_t *compositor,
cairo_clip_t *old_clip;
if (clip_antialias == antialias) {
+ /* refresh limits after trimming extents */
+ _cairo_polygon_limit_to_clip(polygon, extents->clip);
+
status = _cairo_polygon_intersect (polygon, fill_rule,
&clipper, clip_fill_rule);
_cairo_polygon_fini (&clipper);