Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(150)

Unified Diff: src/core/SkPath.cpp

Issue 17432003: SkPath::rewind needs to have same reset as SkPath::reset. (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « include/core/SkPath.h ('k') | src/pathops/SkPathOpsSimplify.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/core/SkPath.cpp
===================================================================
--- src/core/SkPath.cpp (revision 9658)
+++ src/core/SkPath.cpp (working copy)
@@ -219,16 +219,32 @@
#else
: fPathRef(SkPathRef::CreateEmpty())
#endif
+ , fLastMoveToIndex(INITIAL_LASTMOVETOINDEX_VALUE)
reed1 2013/06/19 17:36:49 why not have the constructor also call resetFields
bungeman-skia 2013/06/19 19:59:48 Done.
, fFillType(kWinding_FillType)
- , fBoundsIsDirty(true) {
+ , fSegmentMask(0)
+ , fBoundsIsDirty(true)
+ , fConvexity(kUnknown_Convexity)
+ , fDirection(kUnknown_Direction)
+ , fIsFinite(false) // gets computed when we know our bounds
+ , fIsOval(false)
+#ifdef SK_BUILD_FOR_ANDROID
+ , fGenerationID(0)
+ , fSourcePath(NULL)
+#endif
+{ }
+
caryclark 2013/06/19 17:38:21 could this be #ifdef SK_BUILD_FOR_ANDROID , fG
bungeman-skia 2013/06/19 19:59:48 Done.
+void SkPath::resetFields() {
+ //fPathRef is assumed to have been emptied by the caller.
+ fLastMoveToIndex = INITIAL_LASTMOVETOINDEX_VALUE;
+ fFillType = kWinding_FillType;
+ fSegmentMask = 0;
+ fBoundsIsDirty = true;
fConvexity = kUnknown_Convexity;
fDirection = kUnknown_Direction;
- fSegmentMask = 0;
- fLastMoveToIndex = INITIAL_LASTMOVETOINDEX_VALUE;
+ fIsFinite = false;
fIsOval = false;
- fIsFinite = false; // gets computed when we know our bounds
#ifdef SK_BUILD_FOR_ANDROID
- fGenerationID = 0;
+ GEN_ID_INC;
fSourcePath = NULL;
#endif
}
@@ -236,24 +252,24 @@
SkPath::SkPath(const SkPath& src)
#if SK_DEBUG_PATH_REF
: fPathRef(this)
+#else
+ : fPathRef(SkRef(src.fPathRef.get()))
#endif
+ , fBounds(src.fBounds)
+ , fLastMoveToIndex(src.fLastMoveToIndex)
+ , fFillType(src.fFillType)
+ , fSegmentMask(src.fSegmentMask)
+ , fBoundsIsDirty(src.fBoundsIsDirty)
+ , fConvexity(src.fConvexity)
+ , fDirection(src.fDirection)
+ , fIsFinite(src.fIsFinite)
+ , fIsOval(src.fIsOval)
+#ifdef SK_BUILD_FOR_ANDROID
+ , fGenerationID(src.fGenerationID)
+ , fSourcePath(NULL)
+#endif
{
SkDEBUGCODE(src.validate();)
- src.fPathRef.get()->ref();
- fPathRef.reset(src.fPathRef.get());
- fBounds = src.fBounds;
- fFillType = src.fFillType;
- fBoundsIsDirty = src.fBoundsIsDirty;
- fConvexity = src.fConvexity;
- fDirection = src.fDirection;
- fIsFinite = src.fIsFinite;
- fSegmentMask = src.fSegmentMask;
- fLastMoveToIndex = src.fLastMoveToIndex;
- fIsOval = src.fIsOval;
-#ifdef SK_BUILD_FOR_ANDROID
- fGenerationID = src.fGenerationID;
- fSourcePath = NULL;
-#endif
}
SkPath::~SkPath() {
@@ -264,18 +280,20 @@
SkDEBUGCODE(src.validate();)
if (this != &src) {
- src.fPathRef.get()->ref();
- fPathRef.reset(src.fPathRef.get());
- fBounds = src.fBounds;
- fFillType = src.fFillType;
- fBoundsIsDirty = src.fBoundsIsDirty;
- fConvexity = src.fConvexity;
- fDirection = src.fDirection;
- fIsFinite = src.fIsFinite;
- fSegmentMask = src.fSegmentMask;
+ fPathRef.reset(SkRef(src.fPathRef.get()));
+ fBounds = src.fBounds;
fLastMoveToIndex = src.fLastMoveToIndex;
- fIsOval = src.fIsOval;
+ fFillType = src.fFillType;
+ fSegmentMask = src.fSegmentMask;
+ fBoundsIsDirty = src.fBoundsIsDirty;
+ fConvexity = src.fConvexity;
+ fDirection = src.fDirection;
+ fIsFinite = src.fIsFinite;
+ fIsOval = src.fIsOval;
+#ifdef SK_BUILD_FOR_ANDROID
GEN_ID_INC;
+ fSourcePath = NULL;
+#endif
}
SkDEBUGCODE(this->validate();)
return *this;
@@ -411,25 +429,14 @@
SkDEBUGCODE(this->validate();)
fPathRef.reset(SkPathRef::CreateEmpty());
- GEN_ID_INC;
- fBoundsIsDirty = true;
- fConvexity = kUnknown_Convexity;
- fDirection = kUnknown_Direction;
- fSegmentMask = 0;
- fLastMoveToIndex = INITIAL_LASTMOVETOINDEX_VALUE;
- fIsOval = false;
+ this->resetFields();
}
void SkPath::rewind() {
SkDEBUGCODE(this->validate();)
SkPathRef::Rewind(&fPathRef);
- GEN_ID_INC;
- fConvexity = kUnknown_Convexity;
- fBoundsIsDirty = true;
- fSegmentMask = 0;
- fLastMoveToIndex = INITIAL_LASTMOVETOINDEX_VALUE;
- fIsOval = false;
+ this->resetFields();
}
bool SkPath::isEmpty() const {
« no previous file with comments | « include/core/SkPath.h ('k') | src/pathops/SkPathOpsSimplify.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698