aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pathops/SkPathWriter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/pathops/SkPathWriter.cpp')
-rw-r--r--src/pathops/SkPathWriter.cpp11
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) {