From cc9221ce96c23f6d6f1a17d98e5221e3aeff6567 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=B8ren=20Sandmann=20Pedersen?= Date: Wed, 28 Jul 2010 03:17:35 -0400 Subject: [PATCH] If we bail out of do_composite, make sure to undo any workarounds. The workaround for an old X bug has to be undone if we bail from do_composite, so we can't just return. --- pixman/pixman.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pixman/pixman.c b/pixman/pixman.c index 318226d..0333a40 100644 --- a/pixman/pixman.c +++ b/pixman/pixman.c @@ -742,7 +742,7 @@ do_composite (pixman_op_t op, ®ion, src, mask, dest, src_x, src_y, mask_x, mask_y, dest_x, dest_y, width, height)) { - return; + goto out; } extents = pixman_region32_extents (®ion); @@ -759,7 +759,7 @@ do_composite (pixman_op_t op, */ op = optimize_operator (op, src_flags, mask_flags, dest_flags); if (op == PIXMAN_OP_DST) - return; + goto out; lookup_composite_function (op, src_format, src_flags, @@ -776,6 +776,7 @@ do_composite (pixman_op_t op, (mask_flags & FAST_PATH_SIMPLE_REPEAT), ®ion, func); +out: if (need_workaround) { unapply_workaround (src, src_bits, src_dx, src_dy); -- 2.7.4