if the y-max has neighbors (prev and next) with the same Y values, then the
cross will be 0, but we can still know the direction by looking at the change
in X
Fixes the hypen in #7 of this bug http://code.google.com/p/chromium/issues/detail?id=109370
git-svn-id: http://skia.googlecode.com/svn/trunk@3049 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/core/SkPath.cpp b/src/core/SkPath.cpp
index 11e0079..189caa5 100644
--- a/src/core/SkPath.cpp
+++ b/src/core/SkPath.cpp
@@ -2010,6 +2010,12 @@
int next = find_diff_pt(pts, index, n, 1);
SkASSERT(next != index);
cross = cross_prod(pts[prev], pts[index], pts[next]);
+ // if we get a zero, but the pts aren't on top of each other, then
+ // we can just look at the direction
+ if (0 == cross) {
+ // construct the subtract so we get the correct Direction below
+ cross = pts[index].fX - pts[next].fX;
+ }
}
if (cross) {
if (dir) {