Make SkDevice::onReadPixels take a const& rather than const*



git-svn-id: http://skia.googlecode.com/svn/trunk@2587 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/include/core/SkDevice.h b/include/core/SkDevice.h
index 5d184e4..4dadfc4 100644
--- a/include/core/SkDevice.h
+++ b/include/core/SkDevice.h
@@ -275,9 +275,8 @@
      *  2. bitmap has pixels.
      *  3. The rectangle (x, y, x + bitmap->width(), y + bitmap->height()) is
      *     contained in the device bounds.
-     *  4. the bitmap struct is safe to partially overwrite in case of failure
      */
-    virtual bool onReadPixels(const SkBitmap* bitmap, int x, int y);
+    virtual bool onReadPixels(const SkBitmap& bitmap, int x, int y);
 
 
     /** Called when this device is installed into a Canvas. Balanaced by a call
diff --git a/include/device/xps/SkXPSDevice.h b/include/device/xps/SkXPSDevice.h
index ed61ced..bac7f38 100644
--- a/include/device/xps/SkXPSDevice.h
+++ b/include/device/xps/SkXPSDevice.h
@@ -141,7 +141,7 @@
         int x, int y,
         const SkPaint& paint) SK_OVERRIDE;
 
-    virtual bool onReadPixels(const SkBitmap* bitmap,
+    virtual bool onReadPixels(const SkBitmap& bitmap,
                               int x,
                               int y) SK_OVERRIDE {
         return false;
diff --git a/include/gpu/SkGpuDevice.h b/include/gpu/SkGpuDevice.h
index 047fd07..d394d12 100644
--- a/include/gpu/SkGpuDevice.h
+++ b/include/gpu/SkGpuDevice.h
@@ -141,7 +141,7 @@
     friend class SkAutoTexCache;
     
     // overrides from SkDevice
-    virtual bool onReadPixels(const SkBitmap* bitmap,
+    virtual bool onReadPixels(const SkBitmap& bitmap,
                               int x, int y) SK_OVERRIDE;
 
 
diff --git a/include/pdf/SkPDFDevice.h b/include/pdf/SkPDFDevice.h
index b25e39a..1e4db86 100644
--- a/include/pdf/SkPDFDevice.h
+++ b/include/pdf/SkPDFDevice.h
@@ -158,7 +158,7 @@
     }
     
 protected:
-    virtual bool onReadPixels(const SkBitmap* bitmap,
+    virtual bool onReadPixels(const SkBitmap& bitmap,
                               int x, int y) SK_OVERRIDE {
         return false;
     }
diff --git a/src/core/SkDevice.cpp b/src/core/SkDevice.cpp
index f5523bd..4e2cd0a 100644
--- a/src/core/SkDevice.cpp
+++ b/src/core/SkDevice.cpp
@@ -135,20 +135,20 @@
     SkBitmap bmpSubset;
     bmp->extractSubset(&bmpSubset, subrect);
 
-    bool result = this->onReadPixels(&bmpSubset, srcRect.fLeft, srcRect.fTop);
+    bool result = this->onReadPixels(bmpSubset, srcRect.fLeft, srcRect.fTop);
     if (result && bmp == &tmp) {
         tmp.swap(*bitmap);
     }
     return result;
 }
 
-bool SkDevice::onReadPixels(const SkBitmap* bitmap, int x, int y) {
-    SkASSERT(SkBitmap::kARGB_8888_Config == bitmap->config());
-    SkASSERT(!bitmap->isNull());
-    SkASSERT(SkIRect::MakeWH(this->width(), this->height()).contains(SkIRect::MakeXYWH(x, y, bitmap->width(), bitmap->height())));
+bool SkDevice::onReadPixels(const SkBitmap& bitmap, int x, int y) {
+    SkASSERT(SkBitmap::kARGB_8888_Config == bitmap.config());
+    SkASSERT(!bitmap.isNull());
+    SkASSERT(SkIRect::MakeWH(this->width(), this->height()).contains(SkIRect::MakeXYWH(x, y, bitmap.width(), bitmap.height())));
 
-    SkIRect srcRect = SkIRect::MakeXYWH(x, y, bitmap->width(),
-                                              bitmap->height());
+    SkIRect srcRect = SkIRect::MakeXYWH(x, y, bitmap.width(),
+                                              bitmap.height());
     const SkBitmap& src = this->accessBitmap(false);
 
     SkBitmap subset;
@@ -161,10 +161,10 @@
         // or make copyTo lazily allocate.
         subset.copyTo(&subset, SkBitmap::kARGB_8888_Config); 
     }
-    SkAutoLockPixels alp(*bitmap);
-    return subset.copyPixelsTo(bitmap->getPixels(),
-                               bitmap->getSize(),
-                               bitmap->rowBytes(),
+    SkAutoLockPixels alp(bitmap);
+    return subset.copyPixelsTo(bitmap.getPixels(),
+                               bitmap.getSize(),
+                               bitmap.rowBytes(),
                                true);
 }
 
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index 790cf6d..f145939 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -256,19 +256,19 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-bool SkGpuDevice::onReadPixels(const SkBitmap* bitmap, int x, int y) {
-    SkASSERT(SkBitmap::kARGB_8888_Config == bitmap->config());
-    SkASSERT(!bitmap->isNull());
-    SkASSERT(SkIRect::MakeWH(this->width(), this->height()).contains(SkIRect::MakeXYWH(x, y, bitmap->width(), bitmap->height())));
+bool SkGpuDevice::onReadPixels(const SkBitmap& bitmap, int x, int y) {
+    SkASSERT(SkBitmap::kARGB_8888_Config == bitmap.config());
+    SkASSERT(!bitmap.isNull());
+    SkASSERT(SkIRect::MakeWH(this->width(), this->height()).contains(SkIRect::MakeXYWH(x, y, bitmap.width(), bitmap.height())));
 
-    SkAutoLockPixels alp(*bitmap);
+    SkAutoLockPixels alp(bitmap);
     return fContext->readRenderTargetPixels(fRenderTarget,
                                             x, y,
-                                            bitmap->width(),
-                                            bitmap->height(),
+                                            bitmap.width(),
+                                            bitmap.height(),
                                             kRGBA_8888_GrPixelConfig,
-                                            bitmap->getPixels(),
-                                            bitmap->rowBytes());
+                                            bitmap.getPixels(),
+                                            bitmap.rowBytes());
 }
 
 void SkGpuDevice::writePixels(const SkBitmap& bitmap, int x, int y) {