diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2014-08-25 08:55:24 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2014-08-25 08:55:24 +0100 |
commit | a5f51588afd9d5629b03297eb29ff46350b6ba50 (patch) | |
tree | c6e29ecd62daa053cc401e88d7644d3c4ddcf4db | |
parent | 13a09526d2120c244471e03b6ae979016ef88e83 (diff) |
traps,xcb: Set the box count after filtering
After converting, the number of boxes should only count the number of
non-zero boxes and forget about the zero-sized boxes we skipped over.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=81699
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | src/cairo-traps-compositor.c | 4 | ||||
-rw-r--r-- | src/cairo-xcb-surface-render.c | 5 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/cairo-traps-compositor.c b/src/cairo-traps-compositor.c index 88c7597a2..3414fc268 100644 --- a/src/cairo-traps-compositor.c +++ b/src/cairo-traps-compositor.c @@ -1417,9 +1417,7 @@ boxes_for_traps (cairo_boxes_t *boxes, _cairo_boxes_init (boxes); - boxes->num_boxes = traps->num_traps; boxes->chunks.base = (cairo_box_t *) traps->traps; - boxes->chunks.count = traps->num_traps; boxes->chunks.size = traps->num_traps; if (antialias != CAIRO_ANTIALIAS_NONE) { @@ -1464,6 +1462,8 @@ boxes_for_traps (cairo_boxes_t *boxes, boxes->chunks.base[j].p1.y != boxes->chunks.base[j].p2.y); } } + boxes->chunks.count = j; + boxes->num_boxes = j; return CAIRO_INT_STATUS_SUCCESS; } diff --git a/src/cairo-xcb-surface-render.c b/src/cairo-xcb-surface-render.c index 3361f9cbc..edfa34ca1 100644 --- a/src/cairo-xcb-surface-render.c +++ b/src/cairo-xcb-surface-render.c @@ -2906,9 +2906,7 @@ _boxes_for_traps (cairo_boxes_t *boxes, _cairo_boxes_init (boxes); - boxes->num_boxes = traps->num_traps; boxes->chunks.base = (cairo_box_t *) traps->traps; - boxes->chunks.count = traps->num_traps; boxes->chunks.size = traps->num_traps; if (antialias != CAIRO_ANTIALIAS_NONE) { @@ -2954,6 +2952,9 @@ _boxes_for_traps (cairo_boxes_t *boxes, boxes->chunks.base[j].p1.y != boxes->chunks.base[j].p2.y); } } + + boxes->num_boxes = j; + boxes->chunks.count = j; } static cairo_status_t |