Revert part of r7047 to check Xoom failures

https://codereview.appspot.com/7070049/



git-svn-id: http://skia.googlecode.com/svn/trunk@7062 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index 4e9f837..30b75ad 100644
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -1063,15 +1063,24 @@
        return;
     }
 
+    const SkPath* pathPtr = &path;
+    SkPath tmpPath;
+    SkStrokeRec strokeRec(stroke);
+    if (!strokeRec.isHairlineStyle()) {
+        if (strokeRec.applyToPath(&tmpPath, *pathPtr)) {
+            pathPtr = &tmpPath;
+            strokeRec.setFillStyle();
+        }
+    }
+
     SkRect ovalRect;
-    if ((stroke.isHairlineStyle() || stroke.isFillStyle()) && !path.isInverseFillType() &&
-        path.isOval(&ovalRect)) {
-        SkScalar width = stroke.isHairlineStyle() ? 0 : -SK_Scalar1;
+    if (!pathPtr->isInverseFillType() && pathPtr->isOval(&ovalRect)) {
+        SkScalar width = strokeRec.isHairlineStyle() ? 0 : -SK_Scalar1;
         this->drawOval(paint, ovalRect, width);
         return;
     }
 
-    this->internalDrawPath(paint, path, stroke);
+    this->internalDrawPath(paint, *pathPtr, strokeRec);
 }
 
 void GrContext::internalDrawPath(const GrPaint& paint, const SkPath& path, const SkStrokeRec& stroke) {
@@ -1100,23 +1109,7 @@
     GrPathRendererChain::DrawType type = prAA ? GrPathRendererChain::kColorAntiAlias_DrawType :
                                                 GrPathRendererChain::kColor_DrawType;
 
-    const SkPath* pathPtr = &path;
-    SkPath tmpPath;
-    SkStrokeRec strokeRec(stroke);
-
-    // Try a 1st time without stroking the path and without allowing the SW renderer
-    GrPathRenderer* pr = this->getPathRenderer(*pathPtr, strokeRec, target, false, type);
-
-    if ((NULL == pr) && !strokeRec.isHairlineStyle()) {
-        // It didn't work the 1st time, so try again with the stroked path
-        if (strokeRec.applyToPath(&tmpPath, *pathPtr)) {
-            pathPtr = &tmpPath;
-            strokeRec.setFillStyle();
-        }
-        // This time, allow SW renderer
-        pr = this->getPathRenderer(*pathPtr, strokeRec, target, true, type);
-    }
-
+    GrPathRenderer* pr = this->getPathRenderer(path, stroke, target, true, type);
     if (NULL == pr) {
 #if GR_DEBUG
         GrPrintf("Unable to find path renderer compatible with path.\n");
@@ -1124,7 +1117,7 @@
         return;
     }
 
-    pr->drawPath(*pathPtr, strokeRec, target, prAA);
+    pr->drawPath(path, stroke, target, prAA);
 }
 
 ////////////////////////////////////////////////////////////////////////////////