Chromium Code Reviews| Index: src/pathops/SkPathOpsCubic.cpp |
| diff --git a/src/pathops/SkPathOpsCubic.cpp b/src/pathops/SkPathOpsCubic.cpp |
| index 2542ca58848c9e7da4834b165473c1f71ed3bc83..c511d0da50eab2b51bab9fa3edefc83a8fded5ed 100644 |
| --- a/src/pathops/SkPathOpsCubic.cpp |
| +++ b/src/pathops/SkPathOpsCubic.cpp |
| @@ -240,13 +240,13 @@ bool SkDCubic::ComplexBreak(const SkPoint pointsPtr[4], SkScalar* t) { |
| SkScalar lt = 2.f * d[0]; |
| SkScalar ms = d[1] + tempSqrt; |
| SkScalar mt = 2.f * d[0]; |
| - if (between(0, ls, lt) || between(0, ms, mt)) { |
| + if (between(0, ls, lt) && between(0, ms, mt)) { // Both in [0, 1] interval. |
| ls = ls / lt; |
| ms = ms / mt; |
| - SkScalar smaller = SkTMax(0.f, SkTMin(ls, ms)); |
| - SkScalar larger = SkTMin(1.f, SkTMax(ls, ms)); |
| - *t = (smaller + larger) / 2; |
| - return *t > 0 && *t < 1; |
| + SkASSERT(ls >= 0 && ls <= 1 && ms >= 0 && ms <= 1); // Both in [0, 1]. |
|
caryclark
2016/04/25 14:46:30
use between, e.g.:
SkASSERT(between(0, ls, 1) &&
|
| + *t = (ls + ms) / 2; |
| + SkASSERT(*t >= 0 && *t <= 1); // Average should also be in [0, 1]. |
|
caryclark
2016/04/25 14:46:30
use between
|
| + return *t > 0 && *t < 1; // Check that the cut isn't on an endpoint. |
|
caryclark
2016/04/25 14:46:30
use zero_or_one(t)
|
| } |
| } else if (kSerpentine_SkCubicType == cubicType || kCusp_SkCubicType == cubicType) { |
| SkDCubic cubic; |