| 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;
|
|
|