split tight quads and conics

Tight quads and conics may nearly fold over on themselves, confusing
coincidence against other curves. Split them at their max curvature
early on to avoid complicating later logic.

TBR=reed@google.com
BUG=skia:5131
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2357353002

Review-Url: https://codereview.chromium.org/2357353002
diff --git a/tests/PathOpsConicLineIntersectionTest.cpp b/tests/PathOpsConicLineIntersectionTest.cpp
index 6219506..ecc4a47 100644
--- a/tests/PathOpsConicLineIntersectionTest.cpp
+++ b/tests/PathOpsConicLineIntersectionTest.cpp
@@ -6,6 +6,7 @@
  */
 #include "PathOpsExtendedTest.h"
 #include "PathOpsTestCommon.h"
+#include "SkGeometry.h"
 #include "SkIntersections.h"
 #include "SkPathOpsConic.h"
 #include "SkPathOpsLine.h"
@@ -103,7 +104,9 @@
         SkPoint pts[3] = { conic.fPts.fPts[0].asSkPoint(), conic.fPts.fPts[1].asSkPoint(),
             conic.fPts.fPts[2].asSkPoint() };
         SkPoint reduced[3];
-        SkPath::Verb order1 = SkReduceOrder::Conic(pts, conic.fWeight, reduced);
+        SkConic floatConic;
+        floatConic.set(pts, conic.fWeight);
+        SkPath::Verb order1 = SkReduceOrder::Conic(floatConic, reduced);
         if (order1 != SkPath::kConic_Verb) {
             SkDebugf("%s [%d] conic verb=%d\n", __FUNCTION__, iIndex, order1);
             REPORTER_ASSERT(reporter, 0);