Revert r3321 because of GM failure



git-svn-id: http://skia.googlecode.com/svn/trunk@3323 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrAAConvexPathRenderer.cpp b/src/gpu/GrAAConvexPathRenderer.cpp
index 18965b7..7a11316 100644
--- a/src/gpu/GrAAConvexPathRenderer.cpp
+++ b/src/gpu/GrAAConvexPathRenderer.cpp
@@ -202,11 +202,10 @@
 }
 
 bool get_segments(const GrPath& path,
-                  const GrMatrix& m,
-                  SegmentArray* segments,
-                  SkPoint* fanPt,
-                  int* vCount,
-                  int* iCount) {
+                 SegmentArray* segments,
+                 SkPoint* fanPt,
+                 int* vCount,
+                 int* iCount) {
     SkPath::Iter iter(path, true);
     // This renderer overemphasises very thin path regions. We use the distance
     // to the path from the sample to compute coverage. Every pixel intersected
@@ -226,7 +225,6 @@
                 break;
             case kLine_PathCmd: {
                 update_degenerate_test(&degenerateData, pts[1]);
-                m.mapPoints(pts + 1, 1);
                 segments->push_back();
                 segments->back().fType = Segment::kLine;
                 segments->back().fPts[0] = pts[1];
@@ -235,7 +233,6 @@
             case kQuadratic_PathCmd:
                 update_degenerate_test(&degenerateData, pts[1]);
                 update_degenerate_test(&degenerateData, pts[2]);
-                m.mapPoints(pts + 1, 2);
                 segments->push_back();
                 segments->back().fType = Segment::kQuad;
                 segments->back().fPts[0] = pts[1];
@@ -245,9 +242,6 @@
                 update_degenerate_test(&degenerateData, pts[1]);
                 update_degenerate_test(&degenerateData, pts[2]);
                 update_degenerate_test(&degenerateData, pts[3]);
-                // unlike quads and lines, the pts[0] will also be read (in
-                // convertCubicToQuads).
-                m.mapPoints(pts, 4);
                 SkSTArray<15, SkPoint, true> quads;
                 GrPathUtils::convertCubicToQuads(pts, SK_Scalar1, &quads);
                 int count = quads.count();
@@ -437,8 +431,8 @@
                                         GrDrawState::StageMask stageMask,
                                         bool antiAlias) {
 
-    const SkPath* path = &origPath;
-    if (path->isEmpty()) {
+
+    if (origPath.isEmpty()) {
         return true;
     }
     GrDrawState* drawState = target->drawState();
@@ -455,6 +449,9 @@
     }
     drawState->setViewMatrix(GrMatrix::I());
 
+    SkPath path;
+    origPath.transform(vm, &path);
+
     GrVertexLayout layout = 0;
     for (int s = 0; s < GrDrawState::kNumStages; ++s) {
         if ((1 << s) & stageMask) {
@@ -463,16 +460,6 @@
     }
     layout |= GrDrawTarget::kEdge_VertexLayoutBit;
 
-    // We use the fact that SkPath::transform path does subdivision based on
-    // perspective. Otherwise, we apply the view matrix when copying to the
-    // segment representation.
-    SkPath tmpPath;
-    if (vm.hasPerspective()) {
-        origPath.transform(vm, &tmpPath);
-        path = &tmpPath;
-        vm.reset();
-    }
-
     QuadVertex *verts;
     uint16_t* idxs;
 
@@ -483,8 +470,7 @@
     };
     SkSTArray<kPreallocSegmentCnt, Segment, true> segments;
     SkPoint fanPt;
-
-    if (!get_segments(*path, vm, &segments, &fanPt, &vCount, &iCount)) {
+    if (!get_segments(path, &segments, &fanPt, &vCount, &iCount)) {
         return false;
     }