aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pathops/SkOpSegment.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/pathops/SkOpSegment.cpp')
-rw-r--r--src/pathops/SkOpSegment.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/pathops/SkOpSegment.cpp b/src/pathops/SkOpSegment.cpp
index 95f4a983f2..58c71af437 100644
--- a/src/pathops/SkOpSegment.cpp
+++ b/src/pathops/SkOpSegment.cpp
@@ -1619,16 +1619,16 @@ bool SkOpSegment::testForCoincidence(const SkOpPtT* priorPtT, const SkOpPtT* ptT
return coincident;
}
-void SkOpSegment::undoneSpan(SkOpSpanBase** start, SkOpSpanBase** end) {
- SkOpSpan* span = this->head();
+SkOpSpan* SkOpSegment::undoneSpan() {
+ SkOpSpan* span = &fHead;
+ SkOpSpanBase* next;
do {
+ next = span->next();
if (!span->done()) {
- break;
+ return span;
}
- } while ((span = span->next()->upCastable()));
- SkASSERT(span);
- *start = span;
- *end = span->next();
+ } while (!next->final() && (span = next->upCast()));
+ return nullptr;
}
int SkOpSegment::updateOppWinding(const SkOpSpanBase* start, const SkOpSpanBase* end) const {