diff --git a/samplecode/SampleOverflow.cpp b/samplecode/SampleOverflow.cpp
index e8a1196..64c36d2 100644
--- a/samplecode/SampleOverflow.cpp
+++ b/samplecode/SampleOverflow.cpp
@@ -19,37 +19,37 @@
     SkCanvas canvas;
     SkMatrix matrix;
     matrix.reset();
-    
+
     bitmap.setConfig(SkBitmap::kARGB_8888_Config, 1370, 812);
     bitmap.allocPixels();
     canvas.setBitmapDevice(bitmap);
-    
+
     // set up clipper
     SkRect skclip;
     skclip.set(SkIntToFixed(284), SkIntToFixed(40), SkIntToFixed(1370), SkIntToFixed(708));
-    
+
     ret = canvas.clipRect(skclip);
     SkASSERT(ret);
-    
+
     matrix.set(SkMatrix::kMTransX, SkFloatToFixed(-1153.28));
     matrix.set(SkMatrix::kMTransY, SkFloatToFixed(1180.50));
-    
+
     matrix.set(SkMatrix::kMScaleX, SkFloatToFixed(0.177171));
     matrix.set(SkMatrix::kMScaleY, SkFloatToFixed(0.177043));
-    
+
     matrix.set(SkMatrix::kMSkewX, SkFloatToFixed(0.126968));
     matrix.set(SkMatrix::kMSkewY, SkFloatToFixed(-0.126876));
-    
+
     matrix.set(SkMatrix::kMPersp0, SkFloatToFixed(0.0));
     matrix.set(SkMatrix::kMPersp1, SkFloatToFixed(0.0));
-    
+
     ret = canvas.concat(matrix);
-    
+
     paint.setAntiAlias(true);
     paint.setColor(0xb2202020);
     paint.setStyle(SkPaint::kStroke_Style);
     paint.setStrokeWidth(SkFloatToFixed(68.13));
-    
+
     SkRect r;
     r.set(SkFloatToFixed(-313.714417), SkFloatToFixed(-4.826389), SkFloatToFixed(18014.447266), SkFloatToFixed(1858.154541));
     canvas.drawRoundRect(r, SkFloatToFixed(91.756363), SkFloatToFixed(91.756363), paint);
@@ -59,12 +59,12 @@
 #ifdef SK_SCALAR_IS_FLOATx // FIXME: unclear when if ever this can be enabled
 static bool HitTestPath(const SkPath& path, SkScalar x, SkScalar y) {
     SkRegion    rgn, clip;
-    
+
     int ix = SkScalarFloor(x);
     int iy = SkScalarFloor(y);
 
     clip.setRect(ix, iy, ix + 1, iy + 1);
-    
+
     bool contains = rgn.setPath(path, clip);
     return contains;
 }
@@ -72,7 +72,7 @@
 
 static void TestOverflowHitTest() {
     SkPath path;
-    
+
 #ifdef SK_SCALAR_IS_FLOATx // FIXME: unclear when if ever this can be enabled
     path.addCircle(0, 0, 70000, SkPath::kCCW_Direction);
     SkASSERT(HitTestPath(path, 40000, 40000));
@@ -81,7 +81,7 @@
 
 class OverflowView : public SampleView {
 public:
-	OverflowView() {}
+    OverflowView() {}
 
 protected:
     // overrides from SkEventSink
@@ -92,12 +92,12 @@
         }
         return this->INHERITED::onQuery(evt);
     }
-    
+
     virtual void onDrawContent(SkCanvas* canvas) {
         DrawRoundRect();
         TestOverflowHitTest();
     }
-    
+
 private:
     typedef SampleView INHERITED;
 };
