aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pathops/SkOpSegment.h
diff options
context:
space:
mode:
authorGravatar caryclark <caryclark@google.com>2016-02-24 09:03:07 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-02-24 09:03:07 -0800
commitd78c088b6136590371fddd4cab67bfb4bf692fd3 (patch)
tree7b928823d239ea0c5089b9696af635f694873188 /src/pathops/SkOpSegment.h
parentd9381acb0efc84e5b54627de554c6cefc43ca97d (diff)
fix path ops fuzz bug
If one path is empty and the other has extreme values, the intermediate coincident paths cannot be resolved, but triggers an assert that a data structure unexpectedly has zero-length. Tunnel this failure back up to the top and return that the entire path op fails. A future optimization could detect the empty path and avoid this, allowing the op to succeed -- not sure that it's worth the additional logic though. TBR=reed@google.com BUG=535151 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1730293002 Review URL: https://codereview.chromium.org/1730293002
Diffstat (limited to 'src/pathops/SkOpSegment.h')
-rw-r--r--src/pathops/SkOpSegment.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/pathops/SkOpSegment.h b/src/pathops/SkOpSegment.h
index 06649aa2be..40a50c5fe0 100644
--- a/src/pathops/SkOpSegment.h
+++ b/src/pathops/SkOpSegment.h
@@ -271,7 +271,7 @@ public:
bool markWinding(SkOpSpan* , int winding, int oppWinding);
bool match(const SkOpPtT* span, const SkOpSegment* parent, double t, const SkPoint& pt) const;
bool missingCoincidence(SkOpCoincidence* coincidences, SkChunkAlloc* allocator);
- void moveMultiples();
+ bool moveMultiples();
void moveNearby();
SkOpSegment* next() const {