| Index: src/core/SkStroke.cpp
|
| diff --git a/src/core/SkStroke.cpp b/src/core/SkStroke.cpp
|
| index e04d14aea5adcf84f95f1c83bfd1ad1404702564..65267d11fd4e181f260f9c75043d371c3ce09ab5 100644
|
| --- a/src/core/SkStroke.cpp
|
| +++ b/src/core/SkStroke.cpp
|
| @@ -836,14 +836,12 @@ SkPathStroker::ResultType SkPathStroker::intersectRay(SkQuadConstruct* quadPts,
|
| return STROKER_RESULT(kSplit_ResultType, depth, quadPts,
|
| "(numerA=%g >= 0) == (numerB=%g >= 0)", numerA, numerB);
|
| }
|
| - // check to see if the denomerator is teeny relative to the numerator
|
| - bool validDivide = SkScalarAbs(numerA) * SK_ScalarNearlyZero < SkScalarAbs(denom);
|
| -// the divide check is the same as checking if the scaled denom is nearly zero
|
| -// (commented out because on some platforms the two are not bit-identical)
|
| -// SkASSERT(!SkScalarNearlyZero(denom / numerA) == validDivide);
|
| + // check to see if the denominator is teeny relative to the numerator
|
| + // if the offset by one will be lost, the ratio is too large
|
| + numerA /= denom;
|
| + bool validDivide = numerA > numerA - 1;
|
| if (validDivide) {
|
| if (kCtrlPt_RayType == intersectRayType) {
|
| - numerA /= denom;
|
| SkPoint* ctrlPt = &quadPts->fQuad[1];
|
| // the intersection of the tangents need not be on the tangent segment
|
| // so 0 <= numerA <= 1 is not necessarily true
|
|
|