diff --git a/include/core/SkClipStack.h b/include/core/SkClipStack.h
index b420c9a..a6b5f52 100644
--- a/include/core/SkClipStack.h
+++ b/include/core/SkClipStack.h
@@ -138,7 +138,7 @@
              * Gets the bounds of the clip element, either the rect or path bounds.
              */
             const SkRect& getBounds() const;
-            /** 
+            /**
              * Returns true if the clip element is a path that is inverse filled
              */
             bool isInverseFilled() const;
diff --git a/include/core/SkRect.h b/include/core/SkRect.h
index a754719..21ea84ff 100644
--- a/include/core/SkRect.h
+++ b/include/core/SkRect.h
@@ -79,7 +79,7 @@
      *  (right + left) / 2 when the sum is negative.
      */
     int centerX() const { return (fRight + fLeft) >> 1; }
-    
+
     /**
      *  Since the center of an integer rect may fall on a factional value, this
      *  method is defined to return (bottom + top) >> 1
@@ -88,7 +88,7 @@
      *  (bottom + top) / 2 when the sum is negative.
      */
     int centerY() const { return (fBottom + fTop) >> 1; }
-    
+
     /**
      *  Return true if the rectangle's width or height are <= 0
      */
diff --git a/samplecode/SamplePictFile.cpp b/samplecode/SamplePictFile.cpp
index ce80949..22c81d1 100644
--- a/samplecode/SamplePictFile.cpp
+++ b/samplecode/SamplePictFile.cpp
@@ -45,7 +45,7 @@
         } else {
             SkFILEStream stream(path);
             if (stream.isValid()) {
-                pic = SkNEW_ARGS(SkPicture, 
+                pic = SkNEW_ARGS(SkPicture,
                                  (&stream, NULL, &SkImageDecoder::DecodeStream));
             }
 
diff --git a/src/gpu/GrClipMaskManager.cpp b/src/gpu/GrClipMaskManager.cpp
index 328a448..6cd02bb 100644
--- a/src/gpu/GrClipMaskManager.cpp
+++ b/src/gpu/GrClipMaskManager.cpp
@@ -631,7 +631,7 @@
                 accum->asRenderTarget());
     GR_DEBUGCODE(bool accumClearedToZero = !clearToInside;)
 
-    
+
     GrAutoScratchTexture temp;
     bool first = true;
 
diff --git a/tests/InfRectTest.cpp b/tests/InfRectTest.cpp
index f1b2677..ae4ea60 100644
--- a/tests/InfRectTest.cpp
+++ b/tests/InfRectTest.cpp
@@ -36,7 +36,7 @@
     SkRandom rand;
     for (int i = 0; i < 10000; ++i) {
         SkIRect r;
-        
+
         r.set(rand.nextS() >> 2, rand.nextS() >> 2,
               rand.nextS() >> 2, rand.nextS() >> 2);
         int cx = r.centerX();
@@ -79,7 +79,7 @@
         check_invalid(reporter, small, invalid[i], big, big);
         check_invalid(reporter, invalid[i], small, big, big);
     }
-    
+
     test_center(reporter);
 }
 
