PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.""""

BUG=

Review URL: https://codereview.chromium.org/110503003

git-svn-id: http://skia.googlecode.com/svn/trunk@12622 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/image/SkDataPixelRef.cpp b/src/image/SkDataPixelRef.cpp
index 7897bf9..875f933 100644
--- a/src/image/SkDataPixelRef.cpp
+++ b/src/image/SkDataPixelRef.cpp
@@ -9,18 +9,25 @@
 #include "SkData.h"
 #include "SkFlattenableBuffers.h"
 
-SkDataPixelRef::SkDataPixelRef(SkData* data) : fData(data) {
+SkDataPixelRef::SkDataPixelRef(const SkImageInfo& info,
+                               SkData* data, size_t rowBytes)
+    : INHERITED(info)
+    , fData(data)
+    , fRB(rowBytes) 
+{
     fData->ref();
-    this->setPreLocked(const_cast<void*>(fData->data()), NULL);
+    this->setPreLocked(const_cast<void*>(fData->data()), rowBytes, NULL);
 }
 
 SkDataPixelRef::~SkDataPixelRef() {
     fData->unref();
 }
 
-void* SkDataPixelRef::onLockPixels(SkColorTable** ct) {
-    *ct = NULL;
-    return const_cast<void*>(fData->data());
+bool SkDataPixelRef::onNewLockPixels(LockRec* rec) {
+    rec->fPixels = const_cast<void*>(fData->data());
+    rec->fColorTable = NULL;
+    rec->fRowBytes = fRB;
+    return true;
 }
 
 void SkDataPixelRef::onUnlockPixels() {
@@ -33,11 +40,15 @@
 
 void SkDataPixelRef::flatten(SkFlattenableWriteBuffer& buffer) const {
     this->INHERITED::flatten(buffer);
+    
     buffer.writeDataAsByteArray(fData);
+    buffer.write32(fRB);
 }
 
 SkDataPixelRef::SkDataPixelRef(SkFlattenableReadBuffer& buffer)
-        : INHERITED(buffer, NULL) {
+    : INHERITED(buffer, NULL)
+{
     fData = buffer.readByteArrayAsData();
-    this->setPreLocked(const_cast<void*>(fData->data()), NULL);
+    fRB = buffer.read32();
+    this->setPreLocked(const_cast<void*>(fData->data()), fRB, NULL);
 }