diff --git a/src/core/SkBitmapProcState.cpp b/src/core/SkBitmapProcState.cpp
index 80d2e71..50f4c55 100644
--- a/src/core/SkBitmapProcState.cpp
+++ b/src/core/SkBitmapProcState.cpp
@@ -451,9 +451,9 @@
 
         if (s.fInvType > SkMatrix::kTranslate_Mask) {
             SkPoint pt;
-            s.fInvProc(*s.fInvMatrix, 
+            s.fInvProc(*s.fInvMatrix,
                        SkIntToScalar(x) + SK_ScalarHalf,
-                       SkIntToScalar(y) + SK_ScalarHalf, 
+                       SkIntToScalar(y) + SK_ScalarHalf,
                        &pt);
             yTemp = SkScalarFloorToInt(pt.fY);
         } else {
@@ -477,9 +477,9 @@
 #ifdef SK_DEBUG
         {
             SkPoint pt;
-            s.fInvProc(*s.fInvMatrix, 
+            s.fInvProc(*s.fInvMatrix,
                        SkIntToScalar(x) + SK_ScalarHalf,
-                       SkIntToScalar(y) + SK_ScalarHalf, 
+                       SkIntToScalar(y) + SK_ScalarHalf,
                        &pt);
             int iY2;
 
diff --git a/src/effects/SkBicubicImageFilter.cpp b/src/effects/SkBicubicImageFilter.cpp
index 22c8bff..cb85c81 100644
--- a/src/effects/SkBicubicImageFilter.cpp
+++ b/src/effects/SkBicubicImageFilter.cpp
@@ -32,10 +32,10 @@
 SkBicubicImageFilter* SkBicubicImageFilter::CreateMitchell(const SkSize& scale,
                                                            SkImageFilter* input) {
     static const SkScalar coefficients[16] = {
-        DS( 1.0 / 18.0), DS(-9.0 / 18.0), DS( 15.0 / 18.0), DS( -7.0 / 18.0), 
-        DS(16.0 / 18.0), DS( 0.0 / 18.0), DS(-36.0 / 18.0), DS( 21.0 / 18.0), 
-        DS( 1.0 / 18.0), DS( 9.0 / 18.0), DS( 27.0 / 18.0), DS(-21.0 / 18.0), 
-        DS( 0.0 / 18.0), DS( 0.0 / 18.0), DS( -6.0 / 18.0), DS(  7.0 / 18.0), 
+        DS( 1.0 / 18.0), DS(-9.0 / 18.0), DS( 15.0 / 18.0), DS( -7.0 / 18.0),
+        DS(16.0 / 18.0), DS( 0.0 / 18.0), DS(-36.0 / 18.0), DS( 21.0 / 18.0),
+        DS( 1.0 / 18.0), DS( 9.0 / 18.0), DS( 27.0 / 18.0), DS(-21.0 / 18.0),
+        DS( 0.0 / 18.0), DS( 0.0 / 18.0), DS( -6.0 / 18.0), DS(  7.0 / 18.0),
     };
     return SkNEW_ARGS(SkBicubicImageFilter, (scale, coefficients, input));
 }
diff --git a/tests/PathTest.cpp b/tests/PathTest.cpp
index ee10140..5079b7e 100644
--- a/tests/PathTest.cpp
+++ b/tests/PathTest.cpp
@@ -125,10 +125,10 @@
     paint.setAntiAlias(true);
 
     SkAutoTUnref<SkSurface> surface(new_surface(1000, 1000));
-    
+
     build_path_simple_170666(path);
     surface->getCanvas()->drawPath(path, paint);
-    
+
     build_path_170666(path);
     surface->getCanvas()->drawPath(path, paint);
 }
