diff options
author | Uli Schlachter <psychon@znc.in> | 2013-06-21 20:36:09 +0200 |
---|---|---|
committer | Uli Schlachter <psychon@znc.in> | 2013-07-04 21:57:12 +0200 |
commit | 2170bdbb12f38e372ea2ce1c6492c60cb35f22e4 (patch) | |
tree | 044790ccf8355c6bd54792301718a98486d3fba2 | |
parent | 9058e9ae283ae39a6a4f78dc3dbf8ab46b2ef291 (diff) |
image compositor: Always finish the span renderer
In some obscure conditions that I don't really understand, the image compositor
did not finish a span renderer that it created. This could then cause the last
row of the span to be ignored.
Fixes: clip-complex-bug61492
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=61592
Signed-off-by: Uli Schlachter <psychon@znc.in>
-rw-r--r-- | src/cairo-image-compositor.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c index a79dc4088..824588208 100644 --- a/src/cairo-image-compositor.c +++ b/src/cairo-image-compositor.c @@ -3028,11 +3028,12 @@ span_renderer_fini (cairo_abstract_span_renderer_t *_r, TRACE ((stderr, "%s\n", __FUNCTION__)); - if (likely (status == CAIRO_INT_STATUS_SUCCESS && r->bpp == 0)) { - const cairo_composite_rectangles_t *composite = r->composite; - + if (likely (status == CAIRO_INT_STATUS_SUCCESS)) { if (r->base.finish) r->base.finish (r); + } + if (likely (status == CAIRO_INT_STATUS_SUCCESS && r->bpp == 0)) { + const cairo_composite_rectangles_t *composite = r->composite; pixman_image_composite32 (r->op, r->src, r->mask, to_pixman_image (composite->surface), |