fix pathops fuzz bugs
authorcaryclark <caryclark@google.com>
Wed, 8 Jun 2016 11:28:19 +0000 (04:28 -0700)
committerCommit bot <commit-bot@chromium.org>
Wed, 8 Jun 2016 11:28:19 +0000 (04:28 -0700)
commitdae6b97705fde08958b1a36fa6ce685d28fc692c
tree39b7c096c331a0a29a43ddc7455705f821f5f640
parent2af4599b5c514933bf997d4837ddaaf24fc61cd7
fix pathops fuzz bugs

Fail out in a couple of new places when the input data is very
large and exceeds the limits of the pathops machinery.

Most of the change here plumbs in a way to exclude an assert in
one of these exceptional cases. The current SkAddIntersection
implementation and the inner functions it calls has no way to
report an error to the root caller for an early exit, so rather
than add that in, exclude the assert when the test that would
trigger it runs (allowing the test to otherwise ensure that it
properly fails).

TBR=reed@google.com
BUG=617586,617635
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2046713003

Review-Url: https://codereview.chromium.org/2046713003
18 files changed:
src/pathops/SkAddIntersections.cpp
src/pathops/SkDConicLineIntersection.cpp
src/pathops/SkIntersections.h
src/pathops/SkOpBuilder.cpp
src/pathops/SkOpCoincidence.cpp
src/pathops/SkPathOpsCommon.cpp
src/pathops/SkPathOpsCommon.h
src/pathops/SkPathOpsOp.cpp
src/pathops/SkPathOpsSimplify.cpp
src/pathops/SkPathOpsTightBounds.cpp
src/pathops/SkPathOpsTypes.cpp
src/pathops/SkPathOpsTypes.h
tests/PathOpsAngleIdeas.cpp
tests/PathOpsAngleTest.cpp
tests/PathOpsBuilderTest.cpp
tests/PathOpsExtendedTest.cpp
tests/PathOpsExtendedTest.h
tests/PathOpsOpTest.cpp