diff options
-rw-r--r-- | src/core/SkPictureShader.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/core/SkPictureShader.cpp b/src/core/SkPictureShader.cpp index fb05597db8..73807b38c1 100644 --- a/src/core/SkPictureShader.cpp +++ b/src/core/SkPictureShader.cpp @@ -34,14 +34,17 @@ public: , fTile(tile) , fTmx(tmx) , fTmy(tmy) - , fScale(scale) - , fLocalMatrix(localMatrix) { + , fScale(scale) { + + for (int i = 0; i < 9; ++i) { + fLocalMatrixStorage[i] = localMatrix[i]; + } static const size_t keySize = sizeof(fPictureID) + sizeof(fTile) + sizeof(fTmx) + sizeof(fTmy) + sizeof(fScale) + - sizeof(fLocalMatrix); + sizeof(fLocalMatrixStorage); // This better be packed. SkASSERT(sizeof(uint32_t) * (&fEndOfStruct - &fPictureID) == keySize); this->init(&gBitmapSkaderKeyNamespaceLabel, keySize); @@ -52,7 +55,7 @@ private: SkRect fTile; SkShader::TileMode fTmx, fTmy; SkSize fScale; - SkMatrix fLocalMatrix; + SkScalar fLocalMatrixStorage[9]; SkDEBUGCODE(uint32_t fEndOfStruct;) }; |