| Index: src/core/SkDraw.cpp
|
| diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp
|
| index 929088df17d25f206cab35fbc7b5ac240fba7411..67fd2770b44077eb92687c01b425143e70f5c721 100644
|
| --- a/src/core/SkDraw.cpp
|
| +++ b/src/core/SkDraw.cpp
|
| @@ -595,12 +595,13 @@ void SkDraw::drawPoints(SkCanvas::PointMode mode, size_t count,
|
| if (newPaint.getStrokeCap() == SkPaint::kRound_Cap) {
|
| SkPath path;
|
| SkMatrix preMatrix;
|
| -
|
| +
|
| path.addCircle(0, 0, radius);
|
| for (size_t i = 0; i < count; i++) {
|
| preMatrix.setTranslate(pts[i].fX, pts[i].fY);
|
| // pass true for the last point, since we can modify
|
| // then path then
|
| + path.setIsVolatile((count-1) == i);
|
| if (fDevice) {
|
| fDevice->drawPath(*this, path, newPaint, &preMatrix,
|
| (count-1) == i);
|
| @@ -719,6 +720,7 @@ void SkDraw::drawPoints(SkCanvas::PointMode mode, size_t count,
|
| SkPaint p(paint);
|
| p.setStyle(SkPaint::kStroke_Style);
|
| size_t inc = (SkCanvas::kLines_PointMode == mode) ? 2 : 1;
|
| + path.setIsVolatile(true);
|
| for (size_t i = 0; i < count; i += inc) {
|
| path.moveTo(pts[i]);
|
| path.lineTo(pts[i+1]);
|
| @@ -1011,6 +1013,7 @@ void SkDraw::drawPath(const SkPath& origSrcPath, const SkPaint& origPaint,
|
| SkPath tmpPath;
|
| SkMatrix tmpMatrix;
|
| const SkMatrix* matrix = fMatrix;
|
| + tmpPath.setIsVolatile(true);
|
|
|
| if (prePathMatrix) {
|
| if (origPaint.getPathEffect() || origPaint.getStyle() != SkPaint::kFill_Style ||
|
| @@ -1962,7 +1965,8 @@ void SkDraw::drawTextOnPath(const char text[], size_t byteLength,
|
| if (iterPath) {
|
| SkPath tmp;
|
| SkMatrix m(scaledMatrix);
|
| -
|
| +
|
| + tmp.setIsVolatile(true);
|
| m.postTranslate(xpos + hOffset, 0);
|
| if (matrix) {
|
| m.postConcat(*matrix);
|
|
|