Index: src/core/SkMatrix.cpp |
diff --git a/src/core/SkMatrix.cpp b/src/core/SkMatrix.cpp |
index 5bcb35b298874088004f5c39fba7133e85a0c323..cd7bcea176486de32b97d2a00a1a0afb1de97b64 100644 |
--- a/src/core/SkMatrix.cpp |
+++ b/src/core/SkMatrix.cpp |
@@ -1921,20 +1921,25 @@ const SkMatrix& SkMatrix::InvalidMatrix() { |
/////////////////////////////////////////////////////////////////////////////// |
-uint32_t SkMatrix::writeToMemory(void* buffer) const { |
+size_t SkMatrix::writeToMemory(void* buffer) const { |
// TODO write less for simple matrices |
+ static const size_t sizeInMemory = 9 * sizeof(SkScalar); |
if (buffer) { |
- memcpy(buffer, fMat, 9 * sizeof(SkScalar)); |
+ memcpy(buffer, fMat, sizeInMemory); |
} |
- return 9 * sizeof(SkScalar); |
+ return sizeInMemory; |
} |
-uint32_t SkMatrix::readFromMemory(const void* buffer) { |
+size_t SkMatrix::readFromMemory(const void* buffer, size_t length) { |
+ static const size_t sizeInMemory = 9 * sizeof(SkScalar); |
+ if (length < sizeInMemory) { |
+ return 0; |
+ } |
if (buffer) { |
- memcpy(fMat, buffer, 9 * sizeof(SkScalar)); |
+ memcpy(fMat, buffer, sizeInMemory); |
this->setTypeMask(kUnknown_Mask); |
} |
- return 9 * sizeof(SkScalar); |
+ return sizeInMemory; |
} |
#ifdef SK_DEVELOPER |