aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pathops
diff options
context:
space:
mode:
authorGravatar caryclark <caryclark@google.com>2016-10-20 12:36:16 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-10-20 12:36:16 -0700
commit78a37a53365c24670b050acf993818c435922745 (patch)
treeddc114a5ad3a36c03cce034736552e5a3cca2fa7 /src/pathops
parent61013b235f474cf1c02d7b69ff36bd05700f9a38 (diff)
fix more fuzz, carsvg
Fix a few kevin-generated fuzzers. Remove an assert triggered by carsvg when thrown through the distance field stuff. TBR=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2427253005 Review-Url: https://chromiumcodereview.appspot.com/2427253005
Diffstat (limited to 'src/pathops')
-rw-r--r--src/pathops/SkOpAngle.cpp4
-rwxr-xr-xsrc/pathops/SkOpCoincidence.cpp8
2 files changed, 9 insertions, 3 deletions
diff --git a/src/pathops/SkOpAngle.cpp b/src/pathops/SkOpAngle.cpp
index 1223ac106e..5ebf913798 100644
--- a/src/pathops/SkOpAngle.cpp
+++ b/src/pathops/SkOpAngle.cpp
@@ -160,9 +160,9 @@ bool SkOpAngle::after(SkOpAngle* test) {
return COMPARE_RESULT(9, trOpposite);
} else if (lrOrder == 1 && trOrder == 1) {
SkASSERT(ltOrder < 0);
- SkDEBUGCODE(bool trOpposite = oppositePlanes(rh));
+// SkDEBUGCODE(bool trOpposite = oppositePlanes(rh));
bool lrOpposite = lh->oppositePlanes(rh);
- SkASSERT(lrOpposite != trOpposite);
+// SkASSERT(lrOpposite != trOpposite);
return COMPARE_RESULT(10, lrOpposite);
}
if (lrOrder < 0) {
diff --git a/src/pathops/SkOpCoincidence.cpp b/src/pathops/SkOpCoincidence.cpp
index dcd22854f8..ef0ea60cc8 100755
--- a/src/pathops/SkOpCoincidence.cpp
+++ b/src/pathops/SkOpCoincidence.cpp
@@ -481,7 +481,12 @@ bool SkOpCoincidence::addExpanded(DEBUG_COIN_DECLARE_ONLY_PARAMS()) {
}
if (oTest != oEnd) {
oPriorT = oTest->t();
- oTest = coin->flipped() ? oTest->prev() : oTest->upCast()->next();
+ if (coin->flipped()) {
+ oTest = oTest->prev();
+ } else {
+ FAIL_IF(!oTest->upCastable());
+ oTest = oTest->upCast()->next();
+ }
FAIL_IF(!oTest);
}
@@ -864,6 +869,7 @@ bool SkOpCoincidence::addOverlap(const SkOpSegment* seg1, const SkOpSegment* seg
s2 = overS->find(seg2o);
e2 = overE->find(seg2o);
FAIL_IF(!s2);
+ FAIL_IF(!e2);
if (!s2->starter(e2)->span()->upCast()->windValue()) {
return true;
}