A quick early-out for Region::contains() test
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 20 Mar 2012 05:21:20 +0000 (05:21 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 20 Mar 2012 05:21:20 +0000 (05:21 +0000)
https://bugs.webkit.org/show_bug.cgi?id=81625

Patch by Dana Jansens <danakj@chromium.org> on 2012-03-19
Reviewed by Anders Carlsson.

If the bounds of region B include a row/column that is outside the bounds of
region A, then region B contains a pixel within that row/column that is
outside of region A.

* platform/graphics/Region.cpp:
(WebCore::Region::contains):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@111357 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/Region.cpp

index efb031bc4fbf096d00a75efa515dbc76348a5bf8..0bd88e8ce1b6d2605949af1568a135c3fd5c95db 100644 (file)
@@ -1,3 +1,17 @@
+2012-03-19  Dana Jansens  <danakj@chromium.org>
+
+        A quick early-out for Region::contains() test
+        https://bugs.webkit.org/show_bug.cgi?id=81625
+
+        Reviewed by Anders Carlsson.
+
+        If the bounds of region B include a row/column that is outside the bounds of
+        region A, then region B contains a pixel within that row/column that is
+        outside of region A.
+
+        * platform/graphics/Region.cpp:
+        (WebCore::Region::contains):
+
 2012-03-19  Eric Seidel  <eric@webkit.org>
 
         Unreviewed attempt to fix the EFL build.
index 4f6324caeb7012846785b35006aa5734de42cfe4..5f29de7591e50e8ca476de26c10d3067e7b05844 100644 (file)
@@ -67,6 +67,9 @@ Vector<IntRect> Region::rects() const
 
 bool Region::contains(const Region& region) const
 {
+    if (!m_bounds.contains(region.m_bounds))
+        return false;
+
     return WebCore::intersect(region, *this) == region;
 }