| Index: src/pathops/SkDQuadLineIntersection.cpp
 | 
| diff --git a/src/pathops/SkDQuadLineIntersection.cpp b/src/pathops/SkDQuadLineIntersection.cpp
 | 
| index bae003c18421355a0bc7e41390f72755a230d229..45daa10dbdd35a3cb4ebc1ce4a852935fa8e1890 100644
 | 
| --- a/src/pathops/SkDQuadLineIntersection.cpp
 | 
| +++ b/src/pathops/SkDQuadLineIntersection.cpp
 | 
| @@ -86,7 +86,6 @@ Thus, if the slope of the line tends towards vertical, we use:
 | 
|         C =   ( (a          ) - g'*(d           ) - h' )
 | 
|   */
 | 
|  
 | 
| -
 | 
|  class LineQuadraticIntersections {
 | 
|  public:
 | 
|      enum PinTPoint {
 | 
| @@ -311,10 +310,10 @@ protected:
 | 
|      }
 | 
|  
 | 
|      bool pinTs(double* quadT, double* lineT, SkDPoint* pt, PinTPoint ptSet) {
 | 
| -        if (!approximately_one_or_less(*lineT)) {
 | 
| +        if (!approximately_one_or_less_double(*lineT)) {
 | 
|              return false;
 | 
|          }
 | 
| -        if (!approximately_zero_or_more(*lineT)) {
 | 
| +        if (!approximately_zero_or_more_double(*lineT)) {
 | 
|              return false;
 | 
|          }
 | 
|          double qT = *quadT = SkPinT(*quadT);
 | 
| @@ -326,13 +325,17 @@ protected:
 | 
|          }
 | 
|          SkPoint gridPt = pt->asSkPoint();
 | 
|          if (gridPt == fLine[0].asSkPoint()) {
 | 
| +            *pt = fLine[0];
 | 
|              *lineT = 0;
 | 
|          } else if (gridPt == fLine[1].asSkPoint()) {
 | 
| +            *pt = fLine[1];
 | 
|              *lineT = 1;
 | 
|          }
 | 
|          if (gridPt == fQuad[0].asSkPoint()) {
 | 
| +            *pt = fQuad[0];
 | 
|              *quadT = 0;
 | 
|          } else if (gridPt == fQuad[2].asSkPoint()) {
 | 
| +            *pt = fQuad[2];
 | 
|              *quadT = 1;
 | 
|          }
 | 
|          return true;
 | 
| @@ -345,44 +348,6 @@ private:
 | 
|      bool fAllowNear;
 | 
|  };
 | 
|  
 | 
| -// utility for pairs of coincident quads
 | 
| -static double horizontalIntersect(const SkDQuad& quad, const SkDPoint& pt) {
 | 
| -    LineQuadraticIntersections q(quad, *(static_cast<SkDLine*>(0)),
 | 
| -            static_cast<SkIntersections*>(0));
 | 
| -    double rootVals[2];
 | 
| -    int roots = q.horizontalIntersect(pt.fY, rootVals);
 | 
| -    for (int index = 0; index < roots; ++index) {
 | 
| -        double t = rootVals[index];
 | 
| -        SkDPoint qPt = quad.ptAtT(t);
 | 
| -        if (AlmostEqualUlps(qPt.fX, pt.fX)) {
 | 
| -            return t;
 | 
| -        }
 | 
| -    }
 | 
| -    return -1;
 | 
| -}
 | 
| -
 | 
| -static double verticalIntersect(const SkDQuad& quad, const SkDPoint& pt) {
 | 
| -    LineQuadraticIntersections q(quad, *(static_cast<SkDLine*>(0)),
 | 
| -            static_cast<SkIntersections*>(0));
 | 
| -    double rootVals[2];
 | 
| -    int roots = q.verticalIntersect(pt.fX, rootVals);
 | 
| -    for (int index = 0; index < roots; ++index) {
 | 
| -        double t = rootVals[index];
 | 
| -        SkDPoint qPt = quad.ptAtT(t);
 | 
| -        if (AlmostEqualUlps(qPt.fY, pt.fY)) {
 | 
| -            return t;
 | 
| -        }
 | 
| -    }
 | 
| -    return -1;
 | 
| -}
 | 
| -
 | 
| -double SkIntersections::Axial(const SkDQuad& q1, const SkDPoint& p, bool vertical) {
 | 
| -    if (vertical) {
 | 
| -        return verticalIntersect(q1, p);
 | 
| -    }
 | 
| -    return horizontalIntersect(q1, p);
 | 
| -}
 | 
| -
 | 
|  int SkIntersections::horizontal(const SkDQuad& quad, double left, double right, double y,
 | 
|                                  bool flipped) {
 | 
|      SkDLine line = {{{ left, y }, { right, y }}};
 | 
| 
 |