| Index: src/core/SkRecords.h
|
| diff --git a/src/core/SkRecords.h b/src/core/SkRecords.h
|
| index 6baabe6b7655de5a8199ae5b32aa5906efc9feef..f3d96d4aa99c2e5e1f76c264bd8097ec313c5874 100644
|
| --- a/src/core/SkRecords.h
|
| +++ b/src/core/SkRecords.h
|
| @@ -14,18 +14,6 @@
|
|
|
| namespace SkRecords {
|
|
|
| -template <typename T>
|
| -class RefBox : SkNoncopyable {
|
| -public:
|
| - RefBox(const T* obj) : fObj(SkRef(obj)) {}
|
| - ~RefBox() { fObj->unref(); }
|
| -
|
| - operator const T*() const { return fObj; }
|
| -
|
| -private:
|
| - const T* fObj;
|
| -};
|
| -
|
| // A list of all the types of canvas calls we can record.
|
| // Each of these is reified into a struct below.
|
| //
|
| @@ -132,6 +120,18 @@ struct T { \
|
| T* operator->() { return ptr; } \
|
| const T* operator->() const { return ptr; }
|
|
|
| +template <typename T>
|
| +class RefBox : SkNoncopyable {
|
| +public:
|
| + RefBox(T* obj) : fObj(SkRef(obj)) {}
|
| + ~RefBox() { fObj->unref(); }
|
| +
|
| + ACT_AS_PTR(fObj);
|
| +
|
| +private:
|
| + T* fObj;
|
| +};
|
| +
|
| // An Optional doesn't own the pointer's memory, but may need to destroy non-POD data.
|
| template <typename T>
|
| class Optional : SkNoncopyable {
|
| @@ -231,7 +231,9 @@ RECORD2(DrawOval, SkPaint, paint, SkRect, oval);
|
| RECORD1(DrawPaint, SkPaint, paint);
|
| RECORD2(DrawPath, SkPaint, paint, SkPath, path);
|
| //RECORD2(DrawPatch, SkPaint, paint, SkPatch, patch);
|
| -RECORD3(DrawPicture, Optional<SkPaint>, paint, RefBox<SkPicture>, picture, Optional<SkMatrix>, matrix);
|
| +RECORD3(DrawPicture, Optional<SkPaint>, paint,
|
| + RefBox<const SkPicture>, picture,
|
| + Optional<SkMatrix>, matrix);
|
| RECORD4(DrawPoints, SkPaint, paint, SkCanvas::PointMode, mode, size_t, count, SkPoint*, pts);
|
| RECORD4(DrawPosText, SkPaint, paint,
|
| PODArray<char>, text,
|
| @@ -251,7 +253,7 @@ RECORD5(DrawText, SkPaint, paint,
|
| SkScalar, x,
|
| SkScalar, y);
|
| RECORD4(DrawTextBlob, SkPaint, paint,
|
| - RefBox<SkTextBlob>, blob,
|
| + RefBox<const SkTextBlob>, blob,
|
| SkScalar, x,
|
| SkScalar, y);
|
| RECORD5(DrawTextOnPath, SkPaint, paint,
|
|
|