diff --git a/experimental/Intersection/EdgeDemo.cpp b/experimental/Intersection/EdgeDemo.cpp
index 14ede5b..329f8e3 100644
--- a/experimental/Intersection/EdgeDemo.cpp
+++ b/experimental/Intersection/EdgeDemo.cpp
@@ -232,7 +232,7 @@
     const SkRect& overall = path.getBounds();
     const int divs = 50;
     SkScalar cellWidth = overall.width() / divs * 2;
-    SkScalar cellHeight = overall.height() / divs * 2; 
+    SkScalar cellHeight = overall.height() / divs * 2;
     SkRect target;
     if (true) {
         int xDiv = 21;
@@ -252,7 +252,7 @@
         }
     }
 }
-    
+
 static bool drawLetters(SkCanvas* canvas, int step, bool useOld)
 {
     SkPath path;
diff --git a/experimental/Intersection/Simplify.cpp b/experimental/Intersection/Simplify.cpp
index 2ce83d6..2409da3 100644
--- a/experimental/Intersection/Simplify.cpp
+++ b/experimental/Intersection/Simplify.cpp
@@ -628,7 +628,7 @@
         fSpans = &spans;
         setSpans();
     }
-    
+
     void setSpans() {
         double startT = (*fSpans)[fStart].fT;
         double endT = (*fSpans)[fEnd].fT;
@@ -680,7 +680,7 @@
     SkPath::Verb verb() const {
         return fVerb;
     }
-    
+
     void debugShow(const SkPoint& a) const {
         SkDebugf("    d=(%1.9g,%1.9g) side=%1.9g\n", dx(), dy(), fSide);
     }
@@ -2558,7 +2558,7 @@
         }
         return -1;
     }
-    
+
     // FIXME
     // this returns at any difference in T, vs. a preset minimum. It may be
     // that all callers to nextSpan should use this instead.
diff --git a/src/gpu/GrInOrderDrawBuffer.cpp b/src/gpu/GrInOrderDrawBuffer.cpp
index 678a9c5..2d1a0ef 100644
--- a/src/gpu/GrInOrderDrawBuffer.cpp
+++ b/src/gpu/GrInOrderDrawBuffer.cpp
@@ -99,7 +99,7 @@
         if (!this->getCaps().dualSourceBlendingSupport()) {
             for (int s = 0; s < GrDrawState::kNumStages; ++s) {
                 if (this->getDrawState().isStageEnabled(s)) {
-                    // We disable batching across colors when there is a texture 
+                    // We disable batching across colors when there is a texture
                     // present because (by pushing the the color to the vertices)
                     // Ganesh loses track of the rect's opacity. This, in turn, can
                     // cause some of the blending optimizations to be disabled. This
@@ -154,7 +154,7 @@
         // Now that the paint's color is stored in the vertices set it to
         // white so that the following code can batch all the rects regardless
         // of paint color
-        GrDrawState::AutoColorRestore acr(this->drawState(), 
+        GrDrawState::AutoColorRestore acr(this->drawState(),
                                           batchAcrossColors ? SK_ColorWHITE
                                                             : this->getDrawState().getColor());
 
