Revert of It is dangerous to ignore SkRect::intersect's return value (patchset #6...
authorrobertphillips <robertphillips@google.com>
Wed, 7 Jan 2015 17:12:43 +0000 (09:12 -0800)
committerCommit bot <commit-bot@chromium.org>
Wed, 7 Jan 2015 17:12:43 +0000 (09:12 -0800)
Reason for revert:
Still more Chromium clean up to do

Original issue's description:
> It is dangerous to ignore SkRect::intersect's return value
>
> Committed: https://skia.googlesource.com/skia/+/152f524fd325b7776b01f84afbfe2fa071648a05

TBR=reed@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/825983005

gm/gmmain.cpp
gm/offsetimagefilter.cpp
include/core/SkRect.h
src/core/SkScan_AntiPath.cpp
src/effects/SkBlurMaskFilter.cpp
src/gpu/GrReducedClip.cpp
src/utils/SkGatherPixelRefsAndRects.h

index 1652e61f7c0d092378ae2ccce06177bb50861c77..ece8ff32d4888f0d26cb2768df7c4ed5d7b118e6 100644 (file)
@@ -704,10 +704,8 @@ public:
                 SkRect content = SkRect::MakeWH(SkIntToScalar(pageSize.width()),
                                                 SkIntToScalar(pageSize.height()));
                 initialTransform.mapRect(&content);
-                if (!content.intersect(0, 0, SkIntToScalar(pageSize.width()),
-                                       SkIntToScalar(pageSize.height()))) {
-                    content.setEmpty();
-                }
+                content.intersect(0, 0, SkIntToScalar(pageSize.width()),
+                                  SkIntToScalar(pageSize.height()));
                 SkISize contentSize =
                     SkISize::Make(SkScalarRoundToInt(content.width()),
                                   SkScalarRoundToInt(content.height()));
index 3dafed8823ef498a798a99d8b59797d511e6e55d..7fcbe0a04db973ec8355bdac280bef6fc92ab0e9 100644 (file)
@@ -82,9 +82,8 @@ protected:
         scaleMatrix.setScale(scale, scale);
         SkRect cropRectFloat;
         scaleMatrix.mapRect(&cropRectFloat, SkRect::Make(cropRect));
-        if (clipRect.intersect(cropRectFloat)) {
-            canvas->drawRect(clipRect, strokePaint);
-        }
+        clipRect.intersect(cropRectFloat);
+        canvas->drawRect(clipRect, strokePaint);
     }
 
     virtual void onDraw(SkCanvas* canvas) {
index 06f8abe0e444c2e496c05f9e9cdf36e601124d19..cafc59afa73684f407057dd749fd42da768039bd 100644 (file)
@@ -267,7 +267,7 @@ struct SK_API SkIRect {
         intersection, otherwise return false and do not change this rectangle.
         If either rectangle is empty, do nothing and return false.
     */
-    bool SK_WARN_UNUSED_RESULT intersect(const SkIRect& r) {
+    bool intersect(const SkIRect& r) {
         SkASSERT(&r);
         return this->intersect(r.fLeft, r.fTop, r.fRight, r.fBottom);
     }
@@ -276,7 +276,7 @@ struct SK_API SkIRect {
         that intersection, otherwise return false and do not change this
         rectangle. If either rectangle is empty, do nothing and return false.
     */
-    bool SK_WARN_UNUSED_RESULT intersect(const SkIRect& a, const SkIRect& b) {
+    bool intersect(const SkIRect& a, const SkIRect& b) {
 
         if (!a.isEmpty() && !b.isEmpty() &&
                 a.fLeft < b.fRight && b.fLeft < a.fRight &&
@@ -296,7 +296,7 @@ struct SK_API SkIRect {
         If either is, then the return result is undefined. In the debug build,
         we assert that both rectangles are non-empty.
     */
-    bool SK_WARN_UNUSED_RESULT intersectNoEmptyCheck(const SkIRect& a, const SkIRect& b) {
+    bool intersectNoEmptyCheck(const SkIRect& a, const SkIRect& b) {
         SkASSERT(!a.isEmpty() && !b.isEmpty());
 
         if (a.fLeft < b.fRight && b.fLeft < a.fRight &&
@@ -315,8 +315,7 @@ struct SK_API SkIRect {
         otherwise return false and do not change this rectangle.
         If either rectangle is empty, do nothing and return false.
     */
-    bool SK_WARN_UNUSED_RESULT intersect(int32_t left, int32_t top, 
-                                         int32_t right, int32_t bottom) {
+    bool intersect(int32_t left, int32_t top, int32_t right, int32_t bottom) {
         if (left < right && top < bottom && !this->isEmpty() &&
                 fLeft < right && left < fRight && fTop < bottom && top < fBottom) {
             if (fLeft < left) fLeft = left;
@@ -332,8 +331,8 @@ struct SK_API SkIRect {
      */
     static bool Intersects(const SkIRect& a, const SkIRect& b) {
         return  !a.isEmpty() && !b.isEmpty() &&              // check for empties
-                a.fLeft < b.fRight && b.fLeft < a.fRight &&
-                a.fTop < b.fBottom && b.fTop < a.fBottom;
+        a.fLeft < b.fRight && b.fLeft < a.fRight &&
+        a.fTop < b.fBottom && b.fTop < a.fBottom;
     }
 
     /**
@@ -657,22 +656,21 @@ struct SK_API SkRect {
         intersection, otherwise return false and do not change this rectangle.
         If either rectangle is empty, do nothing and return false.
     */
-    bool SK_WARN_UNUSED_RESULT intersect(const SkRect& r);
+    bool intersect(const SkRect& r);
 
     /** If this rectangle intersects the rectangle specified by left, top, right, bottom,
         return true and set this rectangle to that intersection, otherwise return false
         and do not change this rectangle.
         If either rectangle is empty, do nothing and return false.
     */
-    bool SK_WARN_UNUSED_RESULT intersect(SkScalar left, SkScalar top, 
-                                         SkScalar right, SkScalar bottom);
+    bool intersect(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom);
 
     /**
      *  If rectangles a and b intersect, return true and set this rectangle to
      *  that intersection, otherwise return false and do not change this
      *  rectangle. If either rectangle is empty, do nothing and return false.
      */
-    bool SK_WARN_UNUSED_RESULT intersect(const SkRect& a, const SkRect& b);
+    bool intersect(const SkRect& a, const SkRect& b);
 
 
 private:
index 545a70129e1a3950b8f7eda3a51f881753e30ff3..158f34d265bc352562412014ef3abe285b313c0c 100644 (file)
@@ -454,10 +454,7 @@ MaskSuperBlitter::MaskSuperBlitter(SkBlitter* realBlitter, const SkIRect& ir, co
     fMask.fFormat   = SkMask::kA8_Format;
 
     fClipRect = ir;
-    if (!fClipRect.intersect(clip.getBounds())) {
-        SkASSERT(0);
-        fClipRect.setEmpty();
-    }
+    fClipRect.intersect(clip.getBounds());
 
     // For valgrind, write 1 extra byte at the end so we don't read
     // uninitialized memory. See comment in add_aa_span and fStorage[].
index 97ae436367bdd33909e177b8f4245864d7ed0ba9..aa576697e3a8c85779b5864c409af4b22ddcb587 100644 (file)
@@ -1184,9 +1184,7 @@ bool SkBlurMaskFilterImpl::canFilterMaskGPU(const SkRect& srcBounds,
     // Outset srcRect and clipRect by 3 * sigma, to compute affected blur area.
     srcRect.outset(sigma3, sigma3);
     clipRect.outset(sigma3, sigma3);
-    if (!srcRect.intersect(clipRect)) {
-        srcRect.setEmpty();
-    }
+    srcRect.intersect(clipRect);
     *maskRect = srcRect;
     return true;
 }
index ca97098794d91058da93ec1dc2576eed5cdb46fc..3040b463137bce1d137f2149aac7d6013c3f75ab 100644 (file)
@@ -409,10 +409,7 @@ void GrReducedClip::ReduceClipStack(const SkClipStack& stack,
             if (tighterBounds) {
                 SkIRect stackIBounds;
                 stackBounds.roundOut(&stackIBounds);
-                if (!tighterBounds->intersect(queryBounds, stackIBounds)) {
-                    SkASSERT(0);
-                    tighterBounds->setEmpty();
-                }
+                tighterBounds->intersect(queryBounds, stackIBounds);
                 bounds = tighterBounds;
             }
         } else {
index 9589c3ea3852ba8a5fb2ffeccc13d47823c9186b..6e11fbe6d58a350f1c8008187a4114f0d3e96d6e 100644 (file)
@@ -79,9 +79,8 @@ protected:
             SkRect mappedRect;
             draw.fMatrix->mapRect(&mappedRect, rect);
             SkRect clipRect = SkRect::Make(draw.fRC->getBounds());
-            if (mappedRect.intersect(clipRect)) {
-                fPRCont->add(bm.pixelRef(), mappedRect);
-            }
+            mappedRect.intersect(clipRect);
+            fPRCont->add(bm.pixelRef(), mappedRect);
         }
     }
     virtual void drawOval(const SkDraw& draw, const SkRect& rect,