aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects/SkDiscretePathEffect.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/effects/SkDiscretePathEffect.cpp')
-rw-r--r--src/effects/SkDiscretePathEffect.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/effects/SkDiscretePathEffect.cpp b/src/effects/SkDiscretePathEffect.cpp
index e8c0ec9ad2..06b9d19c68 100644
--- a/src/effects/SkDiscretePathEffect.cpp
+++ b/src/effects/SkDiscretePathEffect.cpp
@@ -50,14 +50,17 @@ bool SkDiscretePathEffect::filterPath(SkPath* dst, const SkPath& src,
n -= 1;
distance += delta/2;
}
- meas.getPosTan(distance, &p, &v);
- Perterb(&p, v, SkScalarMul(rand.nextSScalar1(), scale));
- dst->moveTo(p);
+
+ if (meas.getPosTan(distance, &p, &v)) {
+ Perterb(&p, v, SkScalarMul(rand.nextSScalar1(), scale));
+ dst->moveTo(p);
+ }
while (--n >= 0) {
distance += delta;
- meas.getPosTan(distance, &p, &v);
- Perterb(&p, v, SkScalarMul(rand.nextSScalar1(), scale));
- dst->lineTo(p);
+ if (meas.getPosTan(distance, &p, &v)) {
+ Perterb(&p, v, SkScalarMul(rand.nextSScalar1(), scale));
+ dst->lineTo(p);
+ }
}
if (meas.isClosed()) {
dst->close();