diff options
Diffstat (limited to 'src/pathops/SkPathWriter.cpp')
-rw-r--r-- | src/pathops/SkPathWriter.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/pathops/SkPathWriter.cpp b/src/pathops/SkPathWriter.cpp index 1f6dddd137..c94809e8ec 100644 --- a/src/pathops/SkPathWriter.cpp +++ b/src/pathops/SkPathWriter.cpp @@ -48,23 +48,26 @@ void SkPathWriter::cubicTo(const SkPoint& pt1, const SkPoint& pt2, const SkOpPtT fCurrent.cubicTo(pt1, pt2, pt3->fPt); } -void SkPathWriter::deferredLine(const SkOpPtT* pt) { +bool SkPathWriter::deferredLine(const SkOpPtT* pt) { SkASSERT(fFirstPtT); SkASSERT(fDefer[0]); if (fDefer[0] == pt) { // FIXME: why we're adding a degenerate line? Caller should have preflighted this. - return; + return true; } if (pt->contains(fDefer[0])) { // FIXME: why we're adding a degenerate line? - return; + return true; + } + if (this->matchedLast(pt)) { + return false; } - SkASSERT(!this->matchedLast(pt)); if (fDefer[1] && this->changedSlopes(pt)) { this->lineTo(); fDefer[0] = fDefer[1]; } fDefer[1] = pt; + return true; } void SkPathWriter::deferredMove(const SkOpPtT* pt) { |