Index: src/core/SkPath.cpp |
diff --git a/src/core/SkPath.cpp b/src/core/SkPath.cpp |
index f756ce365c4d0c7dd7a1a3eba74ed9de13d0e1f5..5288b85db37e3ed4e6d5e68532975032ef7374d5 100644 |
--- a/src/core/SkPath.cpp |
+++ b/src/core/SkPath.cpp |
@@ -132,6 +132,7 @@ SkPath::SkPath() |
#endif |
{ |
this->resetFields(); |
+ fIsVolatile = false; |
} |
void SkPath::resetFields() { |
@@ -178,6 +179,7 @@ void SkPath::copyFields(const SkPath& that) { |
fFillType = that.fFillType; |
fConvexity = that.fConvexity; |
fDirection = that.fDirection; |
+ fIsVolatile = that.fIsVolatile; |
} |
bool operator==(const SkPath& a, const SkPath& b) { |
@@ -196,6 +198,7 @@ void SkPath::swap(SkPath& that) { |
SkTSwap<uint8_t>(fFillType, that.fFillType); |
SkTSwap<uint8_t>(fConvexity, that.fConvexity); |
SkTSwap<uint8_t>(fDirection, that.fDirection); |
+ SkTSwap<SkBool8>(fIsVolatile, that.fIsVolatile); |
#ifdef SK_BUILD_FOR_ANDROID |
SkTSwap<const SkPath*>(fSourcePath, that.fSourcePath); |
#endif |
@@ -1606,6 +1609,7 @@ void SkPath::transform(const SkMatrix& matrix, SkPath* dst) const { |
if (this != dst) { |
dst->fFillType = fFillType; |
dst->fConvexity = fConvexity; |
+ dst->fIsVolatile = fIsVolatile; |
} |
if (kUnknown_Direction == fDirection) { |
@@ -1978,7 +1982,8 @@ size_t SkPath::writeToMemory(void* storage) const { |
int32_t packed = (fConvexity << kConvexity_SerializationShift) | |
(fFillType << kFillType_SerializationShift) | |
- (fDirection << kDirection_SerializationShift); |
+ (fDirection << kDirection_SerializationShift) | |
+ (fIsVolatile << kIsVolatile_SerializationShift); |
buffer.write32(packed); |
@@ -1999,6 +2004,7 @@ size_t SkPath::readFromMemory(const void* storage, size_t length) { |
fConvexity = (packed >> kConvexity_SerializationShift) & 0xFF; |
fFillType = (packed >> kFillType_SerializationShift) & 0xFF; |
fDirection = (packed >> kDirection_SerializationShift) & 0x3; |
+ fIsVolatile = (packed >> kIsVolatile_SerializationShift) & 0x1; |
SkPathRef* pathRef = SkPathRef::CreateFromBuffer(&buffer); |
size_t sizeRead = 0; |