diff options
author | 2014-03-20 23:02:35 +0000 | |
---|---|---|
committer | 2014-03-20 23:02:35 +0000 | |
commit | f48182b1614be99117b65118eefd3cd66e2d1f9a (patch) | |
tree | 62528deed8cbda18a16815970364fa5356fe21d9 /src/core | |
parent | 9615d5fc040e7302ce870639ab221233f56fff7c (diff) |
SkPaint: eliminate some dead bytes in 64-bit build.
+ memcpy-based copy constructor was hiding this gap -> manual copy constructor.
+ Split tests for finer-grained failures.
BUG=skia:
Committed: http://code.google.com/p/skia/source/detail?r=13856
R=reed@google.com, mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/203203003
git-svn-id: http://skia.googlecode.com/svn/trunk@13887 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/SkPaint.cpp | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp index 2449ed6793..bc8df2716b 100644 --- a/src/core/SkPaint.cpp +++ b/src/core/SkPaint.cpp @@ -108,22 +108,35 @@ 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) + 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(fTextSize); + COPY(fTextScaleX); + COPY(fTextSkewX); + COPY(fColor); + COPY(fWidth); + COPY(fMiterLimit); + COPY(fBitfields); + COPY(fDirtyBits); #ifdef SK_BUILD_FOR_ANDROID new (&fPaintOptionsAndroid) SkPaintOptionsAndroid(src.fPaintOptionsAndroid); + COPY(fGenerationID); #endif + +#undef COPY +#undef REF_COPY } SkPaint::~SkPaint() { |