Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(405)

Issue 1002693002: pathops version two (Closed)

Created:
5 years, 9 months ago by caryclark
Modified:
5 years, 9 months ago
Reviewers:
reed1
CC:
reviews_skia.org
Base URL:
https://skia.googlesource.com/skia.git@master
Target Ref:
refs/heads/master
Project:
skia
Visibility:
Public.

Description

pathops version two R=reed@google.com marked 'no commit' to attempt to get trybots to run TBR=reed@google.com Committed: https://skia.googlesource.com/skia/+/ccec0f958ffc71a9986d236bc2eb335cb2111119

Patch Set 1 #

Patch Set 2 : debug cubic loop test #

Patch Set 3 : all tests work less cubic threaded and loops #

Patch Set 4 : all tests work less cubic threaded and loops #

Patch Set 5 : all but 8 tests work! #

Patch Set 6 : fix linux warnings #

Patch Set 7 : fix linux warnings again #

Patch Set 8 : fix linux warnings again #

Patch Set 9 : fix mac warning #

Patch Set 10 : clean up code #

Patch Set 11 : remove dead or buggy code; fix assert condition #

Patch Set 12 : remove more dead code #

Patch Set 13 : remove more dead code #

Patch Set 14 : fix bugs exposed by android #

Patch Set 15 : fix linux warning #

Patch Set 16 : fix arm 64 inspired coincident handling #

Unified diffs Side-by-side diffs Delta from patch set Stats (+13250 lines, -15004 lines) Patch
M gyp/core.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +10 lines, -8 lines 0 comments Download
D gyp/pathops.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -61 lines 0 comments Download
M gyp/pathops_unittest.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +1 line, -0 lines 0 comments Download
M gyp/pathops_unittest.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +7 lines, -5 lines 0 comments Download
M include/pathops/SkPathOps.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +31 lines, -1 line 0 comments Download
M src/pathops/SkAddIntersections.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +4 lines, -4 lines 0 comments Download
M src/pathops/SkAddIntersections.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 7 chunks +69 lines, -116 lines 0 comments Download
D src/pathops/SkDCubicIntersection.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -704 lines 0 comments Download
M src/pathops/SkDCubicLineIntersection.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5 chunks +56 lines, -32 lines 0 comments Download
M src/pathops/SkDCubicToQuads.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +0 lines, -150 lines 0 comments Download
M src/pathops/SkDLineIntersection.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 7 chunks +3 lines, -81 lines 0 comments Download
D src/pathops/SkDQuadImplicit.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -39 lines 0 comments Download
D src/pathops/SkDQuadImplicit.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -117 lines 0 comments Download
D src/pathops/SkDQuadIntersection.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -617 lines 0 comments Download
M src/pathops/SkDQuadLineIntersection.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 chunks +60 lines, -14 lines 0 comments Download
M src/pathops/SkIntersectionHelper.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5 chunks +19 lines, -72 lines 0 comments Download
M src/pathops/SkIntersections.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 11 chunks +27 lines, -62 lines 0 comments Download
M src/pathops/SkIntersections.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 chunks +57 lines, -53 lines 0 comments Download
M src/pathops/SkOpAngle.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +77 lines, -102 lines 0 comments Download
M src/pathops/SkOpAngle.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 31 chunks +395 lines, -350 lines 0 comments Download
M src/pathops/SkOpCoincidence.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +18 lines, -2 lines 0 comments Download
A src/pathops/SkOpCoincidence.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +388 lines, -0 lines 0 comments Download
M src/pathops/SkOpContour.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +232 lines, -242 lines 0 comments Download
M src/pathops/SkOpContour.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +44 lines, -694 lines 0 comments Download
M src/pathops/SkOpEdgeBuilder.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +26 lines, -13 lines 0 comments Download
M src/pathops/SkOpEdgeBuilder.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 10 chunks +66 lines, -32 lines 0 comments Download
M src/pathops/SkOpSegment.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +260 lines, -444 lines 0 comments Download
M src/pathops/SkOpSegment.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 37 chunks +1041 lines, -3859 lines 0 comments Download
M src/pathops/SkOpSpan.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +445 lines, -21 lines 0 comments Download
A + src/pathops/SkOpSpan.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 13 chunks +45 lines, -192 lines 0 comments Download
M src/pathops/SkOpTAllocator.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +6 lines, -0 lines 0 comments Download
M src/pathops/SkPathOpsCommon.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +15 lines, -11 lines 0 comments Download
M src/pathops/SkPathOpsCommon.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 chunks +262 lines, -324 lines 0 comments Download
M src/pathops/SkPathOpsCubic.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 chunks +52 lines, -15 lines 0 comments Download
M src/pathops/SkPathOpsCubic.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 8 chunks +122 lines, -73 lines 0 comments Download
D src/pathops/SkPathOpsCubicSect.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -175 lines 0 comments Download
M src/pathops/SkPathOpsDebug.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5 chunks +122 lines, -102 lines 0 comments Download
M src/pathops/SkPathOpsDebug.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 chunks +295 lines, -388 lines 0 comments Download
M src/pathops/SkPathOpsLine.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +3 lines, -10 lines 0 comments Download
M src/pathops/SkPathOpsLine.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +1 line, -21 lines 0 comments Download
M src/pathops/SkPathOpsOp.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 8 chunks +76 lines, -108 lines 0 comments Download
M src/pathops/SkPathOpsPoint.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 7 chunks +11 lines, -42 lines 0 comments Download
M src/pathops/SkPathOpsPostSect.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 10 chunks +15 lines, -12 lines 0 comments Download
M src/pathops/SkPathOpsQuad.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +27 lines, -8 lines 0 comments Download
M src/pathops/SkPathOpsQuad.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5 chunks +61 lines, -14 lines 0 comments Download
D src/pathops/SkPathOpsQuadSect.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -175 lines 0 comments Download
M src/pathops/SkPathOpsRect.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +11 lines, -19 lines 0 comments Download
M src/pathops/SkPathOpsRect.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +0 lines, -19 lines 0 comments Download
M src/pathops/SkPathOpsSimplify.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 chunks +99 lines, -62 lines 0 comments Download
M src/pathops/SkPathOpsTCubicSect.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +3 lines, -3 lines 0 comments Download
M src/pathops/SkPathOpsTQuadSect.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +3 lines, -3 lines 0 comments Download
M src/pathops/SkPathOpsTSect.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 25 chunks +1188 lines, -482 lines 0 comments Download
M src/pathops/SkPathOpsTightBounds.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +7 lines, -5 lines 0 comments Download
D src/pathops/SkPathOpsTriangle.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -20 lines 0 comments Download
D src/pathops/SkPathOpsTriangle.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -51 lines 0 comments Download
M src/pathops/SkPathOpsTypes.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 7 chunks +121 lines, -8 lines 0 comments Download
D src/pathops/SkQuarticRoot.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -16 lines 0 comments Download
D src/pathops/SkQuarticRoot.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -168 lines 0 comments Download
M src/pathops/SkReduceOrder.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -2 lines 0 comments Download
M src/pathops/SkReduceOrder.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +5 lines, -0 lines 0 comments Download
M tests/PathOpsAngleIdeas.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5 chunks +27 lines, -24 lines 0 comments Download
M tests/PathOpsAngleTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 8 chunks +96 lines, -84 lines 0 comments Download
M tests/PathOpsBattles.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 20 chunks +19 lines, -24 lines 0 comments Download
M tests/PathOpsBuilderTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 chunks +9 lines, -2 lines 0 comments Download
M tests/PathOpsCubicIntersectionTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 7 chunks +162 lines, -52 lines 0 comments Download
M tests/PathOpsCubicIntersectionTestData.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +6 lines, -6 lines 0 comments Download
M tests/PathOpsCubicLineIntersectionTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +3 lines, -0 lines 0 comments Download
M tests/PathOpsCubicQuadIntersectionTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 chunks +10 lines, -223 lines 0 comments Download
D tests/PathOpsCubicToQuadsTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -198 lines 0 comments Download
M tests/PathOpsDLineTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -4 lines 0 comments Download
M tests/PathOpsDPointTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -1 line 0 comments Download
D tests/PathOpsDQuadTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -63 lines 0 comments Download
M tests/PathOpsDRectTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +17 lines, -47 lines 0 comments Download
D tests/PathOpsDTriangleTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -70 lines 0 comments Download
M tests/PathOpsDebug.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 8 chunks +833 lines, -531 lines 0 comments Download
M tests/PathOpsExtendedTest.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 chunks +6 lines, -1 line 0 comments Download
M tests/PathOpsExtendedTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 chunks +49 lines, -33 lines 0 comments Download
M tests/PathOpsFuzz763Test.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 21 chunks +26 lines, -27 lines 0 comments Download
M tests/PathOpsLineIntersectionTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 11 chunks +28 lines, -15 lines 0 comments Download
M tests/PathOpsOpCubicThreadedTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +7 lines, -0 lines 0 comments Download
M tests/PathOpsOpLoopThreadedTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 chunks +35 lines, -10 lines 0 comments Download
M tests/PathOpsOpTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 29 chunks +348 lines, -40 lines 0 comments Download
M tests/PathOpsQuadIntersectionTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 chunks +71 lines, -11 lines 0 comments Download
M tests/PathOpsQuadIntersectionTestData.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +5 lines, -5 lines 0 comments Download
D tests/PathOpsQuadParameterizationTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -50 lines 0 comments Download
M tests/PathOpsSimplifyFailTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +1 line, -4 lines 0 comments Download
M tests/PathOpsSimplifyTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5 chunks +8 lines, -9 lines 0 comments Download
M tests/PathOpsSkpTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 41 chunks +31 lines, -78 lines 0 comments Download
M tests/PathOpsTSectDebug.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +121 lines, -40 lines 0 comments Download
M tests/PathOpsTestCommon.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -1 line 0 comments Download
M tests/PathOpsTestCommon.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +120 lines, -11 lines 0 comments Download
M tests/PathOpsThreeWayTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +6 lines, -4 lines 0 comments Download
M tests/PathOpsTightBoundsTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -1 line 0 comments Download
M tools/pathops_sorter.htm View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +1438 lines, -2259 lines 0 comments Download
M tools/pathops_visualizer.htm View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 35 chunks +3882 lines, -653 lines 0 comments Download

Messages

Total messages: 23 (12 generated)
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1002693002/90001
5 years, 9 months ago (2015-03-19 21:19:50 UTC) #2
commit-bot: I haz the power
Note for Reviewers: The CQ is waiting for an approval. If you believe that the ...
5 years, 9 months ago (2015-03-19 21:19:51 UTC) #3
commit-bot: I haz the power
Presubmit check for 1002693002-90001 failed and returned exit status 1. Running presubmit commit checks ...
5 years, 9 months ago (2015-03-19 21:21:27 UTC) #5
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1002693002/130001
5 years, 9 months ago (2015-03-23 20:18:00 UTC) #7
commit-bot: I haz the power
Try jobs failed on following builders: Build-Ubuntu-GCC-x86_64-Release-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-GCC-x86_64-Release-Trybot/builds/51)
5 years, 9 months ago (2015-03-23 20:20:41 UTC) #9
reed1
lgtm
5 years, 9 months ago (2015-03-23 20:22:18 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1002693002/140001
5 years, 9 months ago (2015-03-23 20:31:05 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1002693002/150001
5 years, 9 months ago (2015-03-24 14:21:58 UTC) #20
commit-bot: I haz the power
Committed patchset #16 (id:150001) as https://skia.googlesource.com/skia/+/ccec0f958ffc71a9986d236bc2eb335cb2111119
5 years, 9 months ago (2015-03-24 14:28:23 UTC) #21
reed1
A revert of this CL (patchset #16 id:150001) has been created in https://codereview.chromium.org/1029993002/ by reed@google.com. ...
5 years, 9 months ago (2015-03-24 20:54:19 UTC) #22
brucedawson
5 years, 9 months ago (2015-03-25 20:54:24 UTC) #23
Message was sent while issue was closed.
The VC++ /analyze bot has pointed out a bug in this change. I don't know if it
is related to the ASAN investigation.

The relevant warnings are:

skia\src\pathops\skopedgebuilder.cpp(211) : warning C6295: Ill-defined for-loop:
 'unsigned int' values are always of range '0' to '4294967295'.  Loop executes
infinitely.
skia\src\pathops\skopedgebuilder.cpp(211) : warning C6384: Dividing sizeof a
pointer by another value.

The first warning is a bit cryptic, and is actually worded incorrectly. The
second warning points out the real problem.

The expression "SK_ARRAY_COUNT(curve1)" is invalid because SK_ARRAY_COUNT is
designed to work on arrays and curve1 is a pointer. It therefore always returns
an array count of (I believe) zero, leading to the loop never running.

I opened a bug suggesting that SK_ARRAY_COUNT should be made safe:
https://code.google.com/p/skia/issues/detail?id=3593

I assume that the incorrect loop in skopedgebuilder.cpp will be fixed when this
change is resubmitted.

Powered by Google App Engine
This is Rietveld 408576698