| Index: src/core/SkRecorder.cpp
|
| diff --git a/src/core/SkRecorder.cpp b/src/core/SkRecorder.cpp
|
| index 42fc510fe97452f7fcac20effbdbd6b7119bdd18..c822fdba874dbf3b136694abc7f5bbddf073fd82 100644
|
| --- a/src/core/SkRecorder.cpp
|
| +++ b/src/core/SkRecorder.cpp
|
| @@ -208,17 +208,17 @@ void SkRecorder::onDrawBitmapNine(const SkBitmap& bitmap,
|
|
|
| void SkRecorder::onDrawImage(const SkImage* image, SkScalar left, SkScalar top,
|
| const SkPaint* paint) {
|
| - APPEND(DrawImage, this->copy(paint), image, left, top);
|
| + APPEND(DrawImage, this->copy(paint), sk_ref_sp(image), left, top);
|
| }
|
|
|
| void SkRecorder::onDrawImageRect(const SkImage* image, const SkRect* src, const SkRect& dst,
|
| const SkPaint* paint, SrcRectConstraint constraint) {
|
| - APPEND(DrawImageRect, this->copy(paint), image, this->copy(src), dst, constraint);
|
| + APPEND(DrawImageRect, this->copy(paint), sk_ref_sp(image), this->copy(src), dst, constraint);
|
| }
|
|
|
| void SkRecorder::onDrawImageNine(const SkImage* image, const SkIRect& center,
|
| const SkRect& dst, const SkPaint* paint) {
|
| - APPEND(DrawImageNine, this->copy(paint), image, center, dst);
|
| + APPEND(DrawImageNine, this->copy(paint), sk_ref_sp(image), center, dst);
|
| }
|
|
|
| void SkRecorder::onDrawText(const void* text, size_t byteLength,
|
| @@ -271,13 +271,13 @@ void SkRecorder::onDrawTextRSXform(const void* text, size_t byteLength, const Sk
|
| void SkRecorder::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y,
|
| const SkPaint& paint) {
|
| TRY_MINIRECORDER(drawTextBlob, blob, x, y, paint);
|
| - APPEND(DrawTextBlob, paint, blob, x, y);
|
| + APPEND(DrawTextBlob, paint, sk_ref_sp(blob), x, y);
|
| }
|
|
|
| void SkRecorder::onDrawPicture(const SkPicture* pic, const SkMatrix* matrix, const SkPaint* paint) {
|
| if (fDrawPictureMode == Record_DrawPictureMode) {
|
| fApproxBytesUsedBySubPictures += SkPictureUtils::ApproximateBytesUsed(pic);
|
| - APPEND(DrawPicture, this->copy(paint), pic, matrix ? *matrix : SkMatrix::I());
|
| + APPEND(DrawPicture, this->copy(paint), sk_ref_sp(pic), matrix ? *matrix : SkMatrix::I());
|
| } else {
|
| SkASSERT(fDrawPictureMode == Playback_DrawPictureMode);
|
| SkAutoCanvasMatrixPaint acmp(this, matrix, paint, pic->cullRect());
|
| @@ -290,7 +290,9 @@ void SkRecorder::onDrawShadowedPicture(const SkPicture* pic,
|
| const SkPaint* paint) {
|
| if (fDrawPictureMode == Record_DrawPictureMode) {
|
| fApproxBytesUsedBySubPictures += SkPictureUtils::ApproximateBytesUsed(pic);
|
| - APPEND(DrawShadowedPicture, this->copy(paint), pic, matrix ? *matrix : SkMatrix::I());
|
| + APPEND(DrawShadowedPicture, this->copy(paint),
|
| + sk_ref_sp(pic),
|
| + matrix ? *matrix : SkMatrix::I());
|
| } else {
|
| SkASSERT(fDrawPictureMode == Playback_DrawPictureMode);
|
| SkAutoCanvasMatrixPaint acmp(this, matrix, paint, pic->cullRect());
|
| @@ -310,7 +312,7 @@ void SkRecorder::onDrawVertices(VertexMode vmode,
|
| this->copy(vertices, vertexCount),
|
| texs ? this->copy(texs, vertexCount) : nullptr,
|
| colors ? this->copy(colors, vertexCount) : nullptr,
|
| - xmode,
|
| + sk_ref_sp(xmode),
|
| this->copy(indices, indexCount),
|
| indexCount);
|
| }
|
| @@ -321,14 +323,14 @@ void SkRecorder::onDrawPatch(const SkPoint cubics[12], const SkColor colors[4],
|
| cubics ? this->copy(cubics, SkPatchUtils::kNumCtrlPts) : nullptr,
|
| colors ? this->copy(colors, SkPatchUtils::kNumCorners) : nullptr,
|
| texCoords ? this->copy(texCoords, SkPatchUtils::kNumCorners) : nullptr,
|
| - xmode);
|
| + sk_ref_sp(xmode));
|
| }
|
|
|
| void SkRecorder::onDrawAtlas(const SkImage* atlas, const SkRSXform xform[], const SkRect tex[],
|
| const SkColor colors[], int count, SkXfermode::Mode mode,
|
| const SkRect* cull, const SkPaint* paint) {
|
| APPEND(DrawAtlas, this->copy(paint),
|
| - atlas,
|
| + sk_ref_sp(atlas),
|
| this->copy(xform, count),
|
| this->copy(tex, count),
|
| this->copy(colors, count),
|
| @@ -338,7 +340,7 @@ void SkRecorder::onDrawAtlas(const SkImage* atlas, const SkRSXform xform[], cons
|
| }
|
|
|
| void SkRecorder::onDrawAnnotation(const SkRect& rect, const char key[], SkData* value) {
|
| - APPEND(DrawAnnotation, rect, SkString(key), value);
|
| + APPEND(DrawAnnotation, rect, SkString(key), sk_ref_sp(value));
|
| }
|
|
|
| void SkRecorder::willSave() {
|
| @@ -346,8 +348,10 @@ void SkRecorder::willSave() {
|
| }
|
|
|
| SkCanvas::SaveLayerStrategy SkRecorder::getSaveLayerStrategy(const SaveLayerRec& rec) {
|
| - APPEND(SaveLayer,
|
| - this->copy(rec.fBounds), this->copy(rec.fPaint), rec.fBackdrop, rec.fSaveLayerFlags);
|
| + APPEND(SaveLayer, this->copy(rec.fBounds)
|
| + , this->copy(rec.fPaint)
|
| + , sk_ref_sp(rec.fBackdrop)
|
| + , rec.fSaveLayerFlags);
|
| return SkCanvas::kNoLayer_SaveLayerStrategy;
|
| }
|
|
|
|
|