If we bail out of do_composite, make sure to undo any workarounds.
authorSøren Sandmann Pedersen <ssp@redhat.com>
Wed, 28 Jul 2010 07:17:35 +0000 (03:17 -0400)
committerSøren Sandmann Pedersen <ssp@redhat.com>
Wed, 4 Aug 2010 13:12:05 +0000 (09:12 -0400)
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

index 318226d..0333a40 100644 (file)
@@ -742,7 +742,7 @@ do_composite (pixman_op_t          op,
            &region, src, mask, dest,
            src_x, src_y, mask_x, mask_y, dest_x, dest_y, width, height))
     {
-       return;
+       goto out;
     }
     
     extents = pixman_region32_extents (&region);
@@ -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),
                          &region, func);
 
+out:
     if (need_workaround)
     {
        unapply_workaround (src, src_bits, src_dx, src_dy);