diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2011-10-12 17:04:16 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2011-10-12 17:04:16 +0100 |
commit | 8f34fa033e741eed040ff8895fcb94b8507903b8 (patch) | |
tree | f58bba2c6747b9879d97758b0855dbe5bacb305e /src/cairo-spans-compositor.c | |
parent | d576319e1346712a54802f372f742a24dbcdadd9 (diff) | |
download | cairo-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.c | 3 |
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); |