Index: src/pathops/SkOpCoincidence.cpp |
diff --git a/src/pathops/SkOpCoincidence.cpp b/src/pathops/SkOpCoincidence.cpp |
index 0548ed5a0594157971d3773d3502de79b46303e7..b0cb2437006ad5aea83f6a0e3af96a03f33661f1 100755 |
--- a/src/pathops/SkOpCoincidence.cpp |
+++ b/src/pathops/SkOpCoincidence.cpp |
@@ -551,8 +551,8 @@ double SkOpCoincidence::TRange(const SkOpPtT* overS, double t, |
do { |
const SkOpPtT* contained = work->contains(coinSeg); |
if (!contained) { |
- if (work->t() >= t) { |
- return 1; |
+ if (work->final()) { |
+ break; |
} |
continue; |
} |
@@ -567,8 +567,9 @@ double SkOpCoincidence::TRange(const SkOpPtT* overS, double t, |
} |
SkASSERT(work->ptT() != overE); |
} while ((work = work->upCast()->next())); |
- SkASSERT(coinStart); |
- SkASSERT(coinEnd); |
+ if (!coinStart || !coinEnd) { |
+ return 1; |
+ } |
// while overS->fT <=t and overS contains coinSeg |
double denom = foundEnd->fT - foundStart->fT; |
double sRatio = denom ? (t - foundStart->fT) / denom : 1; |