Index: src/core/SkCanvas.cpp |
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp |
index 240dc9ccc52c87e7fbba3e515bc40c369a7c6975..7e2609b22d133c60c3ca2ab06fc2fb2f7dc9708b 100644 |
--- a/src/core/SkCanvas.cpp |
+++ b/src/core/SkCanvas.cpp |
@@ -895,6 +895,7 @@ void SkCanvas::restore() { |
if (fMCStack.count() > 1) { |
this->willRestore(); |
this->internalRestore(); |
+ this->didRestore(); |
} |
} |
@@ -2260,7 +2261,7 @@ void SkCanvas::drawPatch(const SkPoint cubics[12], const SkColor colors[4], |
if (NULL == cubics) { |
return; |
} |
- |
+ |
// Since a patch is always within the convex hull of the control points, we discard it when its |
// bounding rectangle is completely outside the current clip. |
SkRect bounds; |
@@ -2268,7 +2269,7 @@ void SkCanvas::drawPatch(const SkPoint cubics[12], const SkColor colors[4], |
if (this->quickReject(bounds)) { |
return; |
} |
- |
+ |
this->onDrawPatch(cubics, colors, texCoords, xmode, paint); |
} |
@@ -2276,11 +2277,11 @@ void SkCanvas::onDrawPatch(const SkPoint cubics[12], const SkColor colors[4], |
const SkPoint texCoords[4], SkXfermode* xmode, const SkPaint& paint) { |
LOOPER_BEGIN(paint, SkDrawFilter::kPath_Type, NULL) |
- |
+ |
while (iter.next()) { |
iter.fDevice->drawPatch(iter, cubics, colors, texCoords, xmode, paint); |
} |
- |
+ |
LOOPER_END |
} |
@@ -2550,7 +2551,7 @@ SkAutoCanvasMatrixPaint::SkAutoCanvasMatrixPaint(SkCanvas* canvas, const SkMatri |
} else if (NULL != matrix) { |
canvas->save(); |
} |
- |
+ |
if (NULL != matrix) { |
canvas->concat(*matrix); |
} |