lgtm http://codereview.appspot.com/5534063/diff/1/include/core/SkPath.h File include/core/SkPath.h (right): http://codereview.appspot.com/5534063/diff/1/include/core/SkPath.h#newcode462 include/core/SkPath.h:462: bool cheapComputDirection(Direction* dir) const; compute missing 'e' http://codereview.appspot.com/5534063/diff/1/src/core/SkPath.cpp File src/core/SkPath.cpp (right): http://codereview.appspot.com/5534063/diff/1/src/core/SkPath.cpp#newcode1954 src/core/SkPath.cpp:1954: // cheap version of i = (i + 1) % n; seems curious to optimize here but have the non-optimized expression a few lines up. Maybe the thought is that you'll rarely get to the i >= n-2 case? Would it make sense to compute next = i + 1; if (next == n) { next = 0; } etc before the cross_prod and i = next afterwards?