| Index: src/utils/SkDashPath.cpp
 | 
| diff --git a/src/utils/SkDashPath.cpp b/src/utils/SkDashPath.cpp
 | 
| index cd01a9972b94695e1a4b27e1e819bb675fcb56e0..0d2783eba257b35bef23ca56e7d71c8a51094bfc 100644
 | 
| --- a/src/utils/SkDashPath.cpp
 | 
| +++ b/src/utils/SkDashPath.cpp
 | 
| @@ -16,11 +16,12 @@ static inline int is_even(int x) {
 | 
|  static SkScalar find_first_interval(const SkScalar intervals[], SkScalar phase,
 | 
|                                      int32_t* index, int count) {
 | 
|      for (int i = 0; i < count; ++i) {
 | 
| -        if (phase > intervals[i]) {
 | 
| -            phase -= intervals[i];
 | 
| +        SkScalar gap = intervals[i];
 | 
| +        if (phase > gap || (phase == gap && gap)) {
 | 
| +            phase -= gap;
 | 
|          } else {
 | 
|              *index = i;
 | 
| -            return intervals[i] - phase;
 | 
| +            return gap - phase;
 | 
|          }
 | 
|      }
 | 
|      // If we get here, phase "appears" to be larger than our length. This
 | 
| 
 |