diff --git a/core/SkScaledImageCache.cpp b/core/SkScaledImageCache.cpp
index 644ce7f..ea29843 100644
--- a/core/SkScaledImageCache.cpp
+++ b/core/SkScaledImageCache.cpp
@@ -260,7 +260,7 @@
 
 SkScaledImageCache::ID* SkScaledImageCache::findAndLockMip(const SkBitmap& orig,
                                                            SkMipMap const ** mip) {
-    Rec* rec = this->findAndLock(orig.getGenerationID(), 0, 0, 
+    Rec* rec = this->findAndLock(orig.getGenerationID(), 0, 0,
                                  get_bounds_from_bitmap(orig));
     if (rec) {
         SkASSERT(rec->fMip);
diff --git a/effects/SkMorphologyImageFilter.cpp b/effects/SkMorphologyImageFilter.cpp
index df015ca..8705caa 100644
--- a/effects/SkMorphologyImageFilter.cpp
+++ b/effects/SkMorphologyImageFilter.cpp
@@ -507,8 +507,8 @@
                               morphType, Gr1DKernelEffect::kX_Direction);
         SkIRect clearRect = SkIRect::MakeXYWH(dstRect.fLeft, dstRect.fBottom,
                                               dstRect.width(), radius.fHeight);
-        context->clear(&clearRect, GrMorphologyEffect::kErode_MorphologyType == morphType ? 
-                                   SK_ColorWHITE : 
+        context->clear(&clearRect, GrMorphologyEffect::kErode_MorphologyType == morphType ?
+                                   SK_ColorWHITE :
                                    SK_ColorTRANSPARENT);
         src.reset(ast.detach());
         srcRect = dstRect;
diff --git a/gpu/GrContext.cpp b/gpu/GrContext.cpp
index 53458b3..c5353ab 100644
--- a/gpu/GrContext.cpp
+++ b/gpu/GrContext.cpp
@@ -546,14 +546,14 @@
             fTextureCache->makeNonExclusive(texture->getCacheEntry());
             this->purgeCache();
         } else if (texture->unique() && texture->getDeferredRefCount() <= 0) {
-            // Only the cache now knows about this texture. Since we're never 
-            // reusing scratch textures (in this code path) it would just be 
+            // Only the cache now knows about this texture. Since we're never
+            // reusing scratch textures (in this code path) it would just be
             // wasting time sitting in the cache.
             fTextureCache->makeNonExclusive(texture->getCacheEntry());
             fTextureCache->deleteResource(texture->getCacheEntry());
         } else {
             // In this case (fRefCnt > 1 || defRefCnt > 0) but we don't really
-            // want to readd it to the cache (since it will never be reused). 
+            // want to readd it to the cache (since it will never be reused).
             // Instead, give up the cache's ref and leave the decision up to
             // addExistingTextureToCache once its ref count reaches 0. For
             // this to work we need to leave it in the exclusive list.
diff --git a/lazy/SkLazyPixelRef.cpp b/lazy/SkLazyPixelRef.cpp
index 17bdff4..59df15f 100644
--- a/lazy/SkLazyPixelRef.cpp
+++ b/lazy/SkLazyPixelRef.cpp
@@ -309,4 +309,3 @@
     *bitmap = tmp;
     return true;
 }
-
