summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUli Schlachter <psychon@znc.in>2013-06-21 20:36:09 +0200
committerUli Schlachter <psychon@znc.in>2013-07-04 21:57:12 +0200
commit2170bdbb12f38e372ea2ce1c6492c60cb35f22e4 (patch)
tree044790ccf8355c6bd54792301718a98486d3fba2
parent9058e9ae283ae39a6a4f78dc3dbf8ab46b2ef291 (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.c7
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),