| Index: src/core/SkPaint.cpp
|
| diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp
|
| index 2449ed6793c241fa55ce5c0dfccc77ec72a34a7a..22f0dada7c93d0189ab06ec989ffc2460b5c5361 100644
|
| --- a/src/core/SkPaint.cpp
|
| +++ b/src/core/SkPaint.cpp
|
| @@ -108,18 +108,30 @@ SkPaint::SkPaint() {
|
| }
|
|
|
| SkPaint::SkPaint(const SkPaint& src) {
|
| - memcpy(this, &src, sizeof(src));
|
| -
|
| - SkSafeRef(fTypeface);
|
| - SkSafeRef(fPathEffect);
|
| - SkSafeRef(fShader);
|
| - SkSafeRef(fXfermode);
|
| - SkSafeRef(fMaskFilter);
|
| - SkSafeRef(fColorFilter);
|
| - SkSafeRef(fRasterizer);
|
| - SkSafeRef(fLooper);
|
| - SkSafeRef(fImageFilter);
|
| - SkSafeRef(fAnnotation);
|
| +#define COPY(field) field = src.field
|
| +#define REF_COPY(field) field = SkSafeRef(src.field)
|
| + COPY(fTextSize);
|
| + COPY(fTextScaleX);
|
| + COPY(fTextSkewX);
|
| + COPY(fColor);
|
| + COPY(fWidth);
|
| + COPY(fMiterLimit);
|
| +
|
| + REF_COPY(fTypeface);
|
| + REF_COPY(fPathEffect);
|
| + REF_COPY(fShader);
|
| + REF_COPY(fXfermode);
|
| + REF_COPY(fMaskFilter);
|
| + REF_COPY(fColorFilter);
|
| + REF_COPY(fRasterizer);
|
| + REF_COPY(fLooper);
|
| + REF_COPY(fImageFilter);
|
| + REF_COPY(fAnnotation);
|
| +
|
| + COPY(fBitfields);
|
| + COPY(fDirtyBits);
|
| +#undef COPY
|
| +#undef REF_COPY
|
|
|
| #ifdef SK_BUILD_FOR_ANDROID
|
| new (&fPaintOptionsAndroid) SkPaintOptionsAndroid(src.fPaintOptionsAndroid);
|
|
|