| Index: src/core/SkPixelRef.cpp
|
| diff --git a/src/core/SkPixelRef.cpp b/src/core/SkPixelRef.cpp
|
| index 972474ccc3357f301bda62da187def8f8b7c5db9..8ff1122b3f33e9fb224873cb6a469b757fdd1147 100644
|
| --- a/src/core/SkPixelRef.cpp
|
| +++ b/src/core/SkPixelRef.cpp
|
| @@ -89,6 +89,7 @@ SkPixelRef::SkPixelRef(SkBaseMutex* mutex) {
|
| this->setMutex(mutex);
|
| fPixels = NULL;
|
| fColorTable = NULL; // we do not track ownership of this
|
| + fRowBytes = 0;
|
| fLockCount = 0;
|
| this->needsNewGenID();
|
| fIsImmutable = false;
|
| @@ -100,6 +101,7 @@ SkPixelRef::SkPixelRef(SkFlattenableReadBuffer& buffer, SkBaseMutex* mutex)
|
| this->setMutex(mutex);
|
| fPixels = NULL;
|
| fColorTable = NULL; // we do not track ownership of this
|
| + fRowBytes = 0;
|
| fLockCount = 0;
|
| fIsImmutable = buffer.readBool();
|
| fGenerationID = buffer.readUInt();
|
| @@ -123,12 +125,13 @@ void SkPixelRef::cloneGenID(const SkPixelRef& that) {
|
| that.fUniqueGenerationID = false;
|
| }
|
|
|
| -void SkPixelRef::setPreLocked(void* pixels, SkColorTable* ctable) {
|
| +void SkPixelRef::setPreLocked(void* pixels, size_t rowBytes, SkColorTable* ctable) {
|
| #ifndef SK_IGNORE_PIXELREF_SETPRELOCKED
|
| // only call me in your constructor, otherwise fLockCount tracking can get
|
| // out of sync.
|
| fPixels = pixels;
|
| fColorTable = ctable;
|
| + fRowBytes = rowBytes;
|
| fLockCount = SKPIXELREF_PRELOCKED_LOCKCOUNT;
|
| fPreLocked = true;
|
| #endif
|
| @@ -157,7 +160,8 @@ void SkPixelRef::lockPixels() {
|
| SkAutoMutexAcquire ac(*fMutex);
|
|
|
| if (1 == ++fLockCount) {
|
| - fPixels = this->onLockPixels(&fColorTable);
|
| + SkImageInfo info;
|
| + fPixels = this->onLockPixels(&info, &fRowBytes, &fColorTable);
|
| }
|
| }
|
| }
|
| @@ -173,6 +177,7 @@ void SkPixelRef::unlockPixels() {
|
| this->onUnlockPixels();
|
| fPixels = NULL;
|
| fColorTable = NULL;
|
| + fRowBytes = 0;
|
| }
|
| }
|
| }
|
|
|