| Index: src/effects/SkDashPathEffect.cpp
|
| diff --git a/src/effects/SkDashPathEffect.cpp b/src/effects/SkDashPathEffect.cpp
|
| index ced0aab69a9930efbbd216127f776dd5d8c2770d..38164999159176a59bc49baf7930179b02309fd9 100644
|
| --- a/src/effects/SkDashPathEffect.cpp
|
| +++ b/src/effects/SkDashPathEffect.cpp
|
| @@ -14,7 +14,7 @@
|
|
|
| SkDashPathEffect::SkDashPathEffect(const SkScalar intervals[], int count, SkScalar phase)
|
| : fPhase(0)
|
| - , fInitialDashLength(0)
|
| + , fInitialDashLength(-1)
|
| , fInitialDashIndex(0)
|
| , fIntervalLength(0) {
|
| SkASSERT(intervals);
|
| @@ -23,7 +23,6 @@ SkDashPathEffect::SkDashPathEffect(const SkScalar intervals[], int count, SkScal
|
| fIntervals = (SkScalar*)sk_malloc_throw(sizeof(SkScalar) * count);
|
| fCount = count;
|
| for (int i = 0; i < count; i++) {
|
| - SkASSERT(intervals[i] >= 0);
|
| fIntervals[i] = intervals[i];
|
| }
|
|
|
| @@ -38,7 +37,7 @@ SkDashPathEffect::~SkDashPathEffect() {
|
|
|
| bool SkDashPathEffect::filterPath(SkPath* dst, const SkPath& src,
|
| SkStrokeRec* rec, const SkRect* cullRect) const {
|
| - return SkDashPath::FilterDashPath(dst, src, rec, cullRect, fIntervals, fCount,
|
| + return SkDashPath::InternalFilter(dst, src, rec, cullRect, fIntervals, fCount,
|
| fInitialDashLength, fInitialDashIndex, fIntervalLength);
|
| }
|
|
|
| @@ -162,7 +161,7 @@ bool SkDashPathEffect::asPoints(PointData* results,
|
| const SkMatrix& matrix,
|
| const SkRect* cullRect) const {
|
| // width < 0 -> fill && width == 0 -> hairline so requiring width > 0 rules both out
|
| - if (fInitialDashLength < 0 || 0 >= rec.getWidth()) {
|
| + if (0 >= rec.getWidth()) {
|
| return false;
|
| }
|
|
|
| @@ -388,13 +387,8 @@ void SkDashPathEffect::toString(SkString* str) const {
|
| //////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
| SkPathEffect* SkDashPathEffect::Create(const SkScalar intervals[], int count, SkScalar phase) {
|
| - if ((count < 2) || !SkIsAlign2(count)) {
|
| + if (!SkDashPath::ValidDashPath(phase, intervals, count)) {
|
| return nullptr;
|
| }
|
| - for (int i = 0; i < count; i++) {
|
| - if (intervals[i] < 0) {
|
| - return nullptr;
|
| - }
|
| - }
|
| return new SkDashPathEffect(intervals, count, phase);
|
| }
|
|
|