summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/skia/src/core/SkPathRef.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/skia/src/core/SkPathRef.cpp')
-rw-r--r--chromium/third_party/skia/src/core/SkPathRef.cpp40
1 files changed, 13 insertions, 27 deletions
diff --git a/chromium/third_party/skia/src/core/SkPathRef.cpp b/chromium/third_party/skia/src/core/SkPathRef.cpp
index 0711e3f0699..de7a8f56ae0 100644
--- a/chromium/third_party/skia/src/core/SkPathRef.cpp
+++ b/chromium/third_party/skia/src/core/SkPathRef.cpp
@@ -6,7 +6,7 @@
*/
#include "SkBuffer.h"
-#include "SkOnce.h"
+#include "SkLazyPtr.h"
#include "SkPath.h"
#include "SkPathRef.h"
@@ -28,16 +28,16 @@ SkPathRef::Editor::Editor(SkAutoTUnref<SkPathRef>* pathRef,
}
//////////////////////////////////////////////////////////////////////////////
-void SkPathRef::CreateEmptyImpl(SkPathRef** empty) {
- *empty = SkNEW(SkPathRef);
- (*empty)->computeBounds(); // Preemptively avoid a race to clear fBoundsIsDirty.
+
+SkPathRef* SkPathRef::CreateEmptyImpl() {
+ SkPathRef* p = SkNEW(SkPathRef);
+ p->computeBounds(); // Preemptively avoid a race to clear fBoundsIsDirty.
+ return p;
}
SkPathRef* SkPathRef::CreateEmpty() {
- static SkPathRef* gEmptyPathRef;
- SK_DECLARE_STATIC_ONCE(once);
- SkOnce(&once, SkPathRef::CreateEmptyImpl, &gEmptyPathRef);
- return SkRef(gEmptyPathRef);
+ SK_DECLARE_STATIC_LAZY_PTR(SkPathRef, empty, CreateEmptyImpl);
+ return SkRef(empty.get());
}
void SkPathRef::CreateTransformedCopy(SkAutoTUnref<SkPathRef>* dst,
@@ -105,11 +105,7 @@ void SkPathRef::CreateTransformedCopy(SkAutoTUnref<SkPathRef>* dst,
SkDEBUGCODE((*dst)->validate();)
}
-SkPathRef* SkPathRef::CreateFromBuffer(SkRBuffer* buffer
-#ifndef DELETE_THIS_CODE_WHEN_SKPS_ARE_REBUILT_AT_V16_AND_ALL_OTHER_INSTANCES_TOO
- , bool newFormat, int32_t oldPacked
-#endif
- ) {
+SkPathRef* SkPathRef::CreateFromBuffer(SkRBuffer* buffer) {
SkPathRef* ref = SkNEW(SkPathRef);
bool isOval;
uint8_t segmentMask;
@@ -121,18 +117,8 @@ SkPathRef* SkPathRef::CreateFromBuffer(SkRBuffer* buffer
}
ref->fIsFinite = (packed >> kIsFinite_SerializationShift) & 1;
-
-#ifndef DELETE_THIS_CODE_WHEN_SKPS_ARE_REBUILT_AT_V16_AND_ALL_OTHER_INSTANCES_TOO
- if (newFormat) {
-#endif
- segmentMask = (packed >> kSegmentMask_SerializationShift) & 0xF;
- isOval = (packed >> kIsOval_SerializationShift) & 1;
-#ifndef DELETE_THIS_CODE_WHEN_SKPS_ARE_REBUILT_AT_V16_AND_ALL_OTHER_INSTANCES_TOO
- } else {
- segmentMask = (oldPacked >> SkPath::kOldSegmentMask_SerializationShift) & 0xF;
- isOval = (oldPacked >> SkPath::kOldIsOval_SerializationShift) & 1;
- }
-#endif
+ segmentMask = (packed >> kSegmentMask_SerializationShift) & 0xF;
+ isOval = (packed >> kIsOval_SerializationShift) & 1;
int32_t verbCount, pointCount, conicCount;
if (!buffer->readU32(&(ref->fGenerationID)) ||
@@ -288,8 +274,8 @@ void SkPathRef::copy(const SkPathRef& ref,
SkDEBUGCODE(this->validate();)
}
-SkPoint* SkPathRef::growForRepeatedVerb(int /*SkPath::Verb*/ verb,
- int numVbs,
+SkPoint* SkPathRef::growForRepeatedVerb(int /*SkPath::Verb*/ verb,
+ int numVbs,
SkScalar** weights) {
// This value is just made-up for now. When count is 4, calling memset was much
// slower than just writing the loop. This seems odd, and hopefully in the