Simplify clip inside a layer -- will be applied in restore

This reverts commit 44124650895833378938b4b174302fbf64403fe2.

NOTREECHECKS=True
BUG=skia:

Review URL: https://codereview.chromium.org/996233002
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 55b3b7b..a31ded0 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -833,7 +833,6 @@
 bool SkCanvas::clipRectBounds(const SkRect* bounds, SaveFlags flags,
                               SkIRect* intersection, const SkImageFilter* imageFilter) {
     SkIRect clipBounds;
-    SkRegion::Op op = SkRegion::kIntersect_Op;
     if (!this->getClipDeviceBounds(&clipBounds)) {
         return false;
     }
@@ -842,8 +841,6 @@
 
     if (imageFilter) {
         imageFilter->filterBounds(clipBounds, ctm, &clipBounds);
-        // Filters may grow the bounds beyond the device bounds.
-        op = SkRegion::kReplace_Op;
     }
     SkIRect ir;
     if (bounds) {
@@ -862,14 +859,13 @@
     } else {    // no user bounds, so just use the clip
         ir = clipBounds;
     }
+    SkASSERT(!ir.isEmpty());
 
     if (bounds_affects_clip(flags)) {
+        // Simplify the current clips since they will be applied properly during restore()
         fCachedLocalClipBoundsDirty = true;
-        fClipStack->clipDevRect(ir, op);
-        // early exit if the clip is now empty
-        if (!fMCRec->fRasterClip.op(ir, op)) {
-            return false;
-        }
+        fClipStack->clipDevRect(ir, SkRegion::kReplace_Op);
+        fMCRec->fRasterClip.setRect(ir);
     }
 
     if (intersection) {