diff --git a/gm/shadertext2.cpp b/gm/shadertext2.cpp
index 519e41f..387bd49 100644
--- a/gm/shadertext2.cpp
+++ b/gm/shadertext2.cpp
@@ -23,7 +23,7 @@
     static const SkScalar    kPos[] = { 0, SK_Scalar1/2, SK_Scalar1 };
     static const SkColor kColors0[] = {0x40FF00FF, 0xF0FFFF00, 0x4000FFFF };
     static const SkColor kColors1[] = {0xF0FF00FF, 0x80FFFF00, 0xF000FFFF };
-   
+
 
     SkPaint     paint;
 
@@ -95,7 +95,7 @@
         if (bmp.isNull()) {
             makebm(&bmp, SkBitmap::kARGB_8888_Config, kPointSize / 2, kPointSize / 2);
         }
-        
+
         SkAutoTUnref<SkShader> shader(SkShader::CreateBitmapShader(bmp,
                                                                    SkShader::kMirror_TileMode,
                                                                    SkShader::kRepeat_TileMode));
diff --git a/include/core/SkCanvas.h b/include/core/SkCanvas.h
index 178364c..0d7b899 100644
--- a/include/core/SkCanvas.h
+++ b/include/core/SkCanvas.h
@@ -988,7 +988,7 @@
         fSurfaceBase = sb;
     }
     friend class SkSurface_Base;
-    
+
     bool fDeviceCMDirty;            // cleared by updateDeviceCMCache()
     void updateDeviceCMCache();
 
diff --git a/include/core/SkDevice.h b/include/core/SkDevice.h
index 0873742..33be2f6 100644
--- a/include/core/SkDevice.h
+++ b/include/core/SkDevice.h
@@ -204,7 +204,7 @@
      *  passed in).
      */
      virtual void setMatrixClip(const SkMatrix&, const SkRegion&,
-	                            const SkClipStack&);
+                                const SkClipStack&);
 
     /** Clears the entire device to the specified color (including alpha).
      *  Ignores the clip.
diff --git a/samplecode/TransitionView.cpp b/samplecode/TransitionView.cpp
index 4f15bd3..1caff13 100644
--- a/samplecode/TransitionView.cpp
+++ b/samplecode/TransitionView.cpp
@@ -190,8 +190,8 @@
 
 SkView* create_transition(SkView* prev, SkView* next, int direction) {
 #ifdef SK_BUILD_FOR_ANDROID
-	// Disable transitions for Android
-	return next;
+    // Disable transitions for Android
+    return next;
 #else
     return SkNEW_ARGS(TransitionView, (prev, next, direction));
 #endif
diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp
index 17d29b6..cdd59c1 100644
--- a/src/core/SkDraw.cpp
+++ b/src/core/SkDraw.cpp
@@ -1541,7 +1541,7 @@
     // SkScalarRec doesn't currently have a way of representing hairline stroke and
     // will fill if its frame-width is 0.
     if (/*paint.isLinearText() ||*/
-        (fMatrix->hasPerspective()) || 
+        (fMatrix->hasPerspective()) ||
         (0 == paint.getStrokeWidth() && SkPaint::kStroke_Style == paint.getStyle())) {
         this->drawText_asPaths(text, byteLength, x, y, paint);
         return;
diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp
index 573d49d..c688310 100644
--- a/src/core/SkImageFilter.cpp
+++ b/src/core/SkImageFilter.cpp
@@ -40,7 +40,7 @@
     delete[] fInputs;
 }
 
-SkImageFilter::SkImageFilter(SkFlattenableReadBuffer& buffer) 
+SkImageFilter::SkImageFilter(SkFlattenableReadBuffer& buffer)
     : fNumInputs(buffer.readInt()), fInputs(new SkImageFilter*[fNumInputs]) {
     for (int i = 0; i < fNumInputs; i++) {
         if (buffer.readBool()) {
