| Index: src/core/SkBitmap.cpp
|
| diff --git a/src/core/SkBitmap.cpp b/src/core/SkBitmap.cpp
|
| index 27ea35e974b8c4423ed58671e4b22b936cf00c75..9a5f1f26dcacaf6faa8310b4424ef83640491426 100644
|
| --- a/src/core/SkBitmap.cpp
|
| +++ b/src/core/SkBitmap.cpp
|
| @@ -101,15 +101,7 @@ SkBitmap& SkBitmap::operator=(const SkBitmap& src) {
|
| // we reset our locks if we get blown away
|
| fPixelLockCount = 0;
|
|
|
| - /* The src could be in 3 states
|
| - 1. no pixelref, in which case we just copy/ref the pixels/ctable
|
| - 2. unlocked pixelref, pixels/ctable should be null
|
| - 3. locked pixelref, we should lock the ref again ourselves
|
| - */
|
| - if (NULL == fPixelRef) {
|
| - // leave fPixels as it is
|
| - SkSafeRef(fColorTable); // ref the user's ctable if present
|
| - } else { // we have a pixelref, so pixels/ctable reflect it
|
| + if (fPixelRef) {
|
| // ignore the values from the memcpy
|
| fPixels = NULL;
|
| fColorTable = NULL;
|
| @@ -345,14 +337,11 @@ void SkBitmap::updatePixelsFromRef() const {
|
| + fPixelRefOrigin.fX * fBytesPerPixel;
|
| }
|
| fPixels = p;
|
| - SkRefCnt_SafeAssign(fColorTable, fPixelRef->colorTable());
|
| + fColorTable = fPixelRef->colorTable();
|
| } else {
|
| SkASSERT(0 == fPixelLockCount);
|
| fPixels = NULL;
|
| - if (fColorTable) {
|
| - fColorTable->unref();
|
| - fColorTable = NULL;
|
| - }
|
| + fColorTable = NULL;
|
| }
|
| }
|
| }
|
| @@ -510,11 +499,6 @@ void SkBitmap::freePixels() {
|
| // if we're gonna free the pixels, we certainly need to free the mipmap
|
| this->freeMipMap();
|
|
|
| - if (fColorTable) {
|
| - fColorTable->unref();
|
| - fColorTable = NULL;
|
| - }
|
| -
|
| if (NULL != fPixelRef) {
|
| if (fPixelLockCount > 0) {
|
| fPixelRef->unlockPixels();
|
| @@ -525,6 +509,7 @@ void SkBitmap::freePixels() {
|
| }
|
| fPixelLockCount = 0;
|
| fPixels = NULL;
|
| + fColorTable = NULL;
|
| }
|
|
|
| void SkBitmap::freeMipMap() {
|
| @@ -1610,7 +1595,6 @@ void SkBitmap::validate() const {
|
| #endif
|
| SkASSERT(fFlags <= allFlags);
|
| SkASSERT(fPixelLockCount >= 0);
|
| - SkASSERT(NULL == fColorTable || (unsigned)fColorTable->getRefCnt() < 10000);
|
| SkASSERT((uint8_t)ComputeBytesPerPixel((Config)fConfig) == fBytesPerPixel);
|
|
|
| if (fPixels) {
|
|
|