Make gpu hairline check for degenerate quad more robust 

Review URL: http://codereview.appspot.com/4956067/



git-svn-id: http://skia.googlecode.com/svn/trunk@2232 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gpu/src/GrAAHairLinePathRenderer.cpp b/gpu/src/GrAAHairLinePathRenderer.cpp
index e1307a7..13aa001 100644
--- a/gpu/src/GrAAHairLinePathRenderer.cpp
+++ b/gpu/src/GrAAHairLinePathRenderer.cpp
@@ -222,13 +222,20 @@
 // if it returns -1 then should be drawn as lines
 int num_quad_subdivs(const SkPoint p[3]) {
     static const SkScalar gDegenerateToLineTol = SK_Scalar1;
+    static const SkScalar gDegenerateToLineTolSqd = 
+        SkScalarMul(gDegenerateToLineTol, gDegenerateToLineTol);
 
-    GrScalar dsqd = p[1].distanceToLineBetweenSqd(p[0], p[2]);
-    if (dsqd < gDegenerateToLineTol*gDegenerateToLineTol) {
+    if (p[0].distanceToSqd(p[1]) < gDegenerateToLineTolSqd ||
+        p[1].distanceToSqd(p[2]) < gDegenerateToLineTolSqd) {
         return -1;
     }
-    if (p[2].distanceToLineBetweenSqd(p[1],p[0]) <
-        gDegenerateToLineTol*gDegenerateToLineTol) {
+
+    GrScalar dsqd = p[1].distanceToLineBetweenSqd(p[0], p[2]);
+    if (dsqd < gDegenerateToLineTolSqd) {
+        return -1;
+    }
+
+    if (p[2].distanceToLineBetweenSqd(p[1], p[0]) < gDegenerateToLineTolSqd) {
         return -1;
     }