[cairo] Testing requested for pixman 0.16.1

Soeren Sandmann sandmann at daimi.au.dk
Tue Sep 15 06:04:00 PDT 2009


Hi,

As far as I am aware pixman 0.16.2 is ready to be released. If anyone
know of any other bugs or fixes that need to go in, let me know.

Otherwise, please test this snapshot:

    http://www.freedesktop.org/~sandmann/pixman-0.16.1.tar.gz

especially if you have an unusual platform such as ARM or
PowerPC. Interesting tests:

 - Does it build?

 - Do test/blitters-test and test/scaling-test pass?

 - Does your X server work when it is installed?

 - Does the cairo test suite pass with it installed?

I would also appreciate an extra look at the patch below that I just
cherry-picked to 0.16. Did I get the inequality signs right? It's
supposed to test whether the "extents" box is completely contained
within the image.


Thanks,
Soren



commit 77627554bcc81f4aa3cb81f8158075aa6f20eca1
Author: Søren Sandmann Pedersen <sandmann at redhat.com>
Date:   Thu Sep 10 21:33:24 2009 -0400

    Fix off-by-one error in
    source_image_needs_out_of_bounds_workaround()
    
    If extents->x2/y2 are equal to image->width/height, then the clip
    is still inside the drawable, so no workaround is necessary.

diff --git a/pixman/pixman-bits-image.c b/pixman/pixman-bits-image.c
index 6b80189..4e78ce1 100644
--- a/pixman/pixman-bits-image.c
+++ b/pixman/pixman-bits-image.c
@@ -612,14 +612,14 @@ source_image_needs_out_of_bounds_workaround
(bits_image_t *image)
     {
        if (!image->common.client_clip)
        {
-           /* There is no client clip, so the drawable in question
-            * is a window if the clip region extends beyond the
-            * drawable geometry.
+           /* There is no client clip, so if the clip region extends beyond the
+            * drawable geometry, it must be because the X server generated the
+            * bogus clip region.
             */
            const pixman_box32_t *extents = pixman_region32_extents (&image->common.clip_region);
 
-           if (extents->x1 >= 0 && extents->x2 < image->width &&
-               extents->y1 >= 0 && extents->y2 < image->height)
+           if (extents->x1 >= 0 && extents->x2 <= image->width &&
+               extents->y1 >= 0 && extents->y2 <= image->height)
            {
                return FALSE;
            }


More information about the cairo mailing list