Index: src/core/SkCanvas.cpp |
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp |
index f5e91ffc43fa1b943f6ca62a59bdc2529c3cec21..3d31a9e65d068f18daa65763ccb921b9f8a9800a 100644 |
--- a/src/core/SkCanvas.cpp |
+++ b/src/core/SkCanvas.cpp |
@@ -1342,13 +1342,7 @@ bool SkCanvas::clipPath(const SkPath& path, SkRegion::Op op, bool doAA) { |
continue; |
} |
SkPath operand; |
- if (type == SkClipStack::Element::kRect_Type) { |
- operand.addRect(element->getRect()); |
- } else if (type == SkClipStack::Element::kPath_Type) { |
- operand = element->getPath(); |
- } else { |
- SkDEBUGFAIL("Unexpected type."); |
- } |
+ element->asPath(&operand); |
SkRegion::Op elementOp = element->getOp(); |
if (elementOp == SkRegion::kReplace_Op) { |
devPath = operand; |
@@ -1505,6 +1499,9 @@ void SkCanvas::replayClips(ClipVisitor* visitor) const { |
case SkClipStack::Element::kPath_Type: |
visitor->clipPath(element->getPath(), element->getOp(), element->isAA()); |
break; |
+ case SkClipStack::Element::kRRect_Type: |
+ visitor->clipRRect(element->getRRect(), element->getOp(), element->isAA()); |
+ break; |
case SkClipStack::Element::kRect_Type: |
visitor->clipRect(element->getRect(), element->getOp(), element->isAA()); |
break; |