Use find_box_for_y() in pixman_region_contains_point() too
authorSøren Sandmann Pedersen <ssp@redhat.com>
Tue, 2 Aug 2011 07:03:48 +0000 (03:03 -0400)
committerSøren Sandmann Pedersen <ssp@redhat.com>
Thu, 11 Aug 2011 07:32:14 +0000 (03:32 -0400)
The same binary search from the previous commit can be used in this
function too.

V2: Remove check from loop that is not needed anymore, pointed out by
Andrea Canciani.

pixman/pixman-region.c

index 71995fd..9ff5157 100644 (file)
@@ -2378,13 +2378,13 @@ PREFIX (_contains_point) (region_type_t * region,
         return(TRUE);
     }
 
-    for (pbox = PIXREGION_BOXPTR (region), pbox_end = pbox + numRects;
-        pbox != pbox_end;
-        pbox++)
-    {
-        if (y >= pbox->y2)
-           continue;           /* not there yet */
+    pbox = PIXREGION_BOXPTR (region);
+    pbox_end = pbox + numRects;
+
+    pbox = find_box_for_y (pbox, pbox_end, y);
 
+    for (;pbox != pbox_end; pbox++)
+    {
         if ((y < pbox->y1) || (x < pbox->x1))
            break;              /* missed it */