| Index: src/core/SkBitmapCache.cpp
|
| diff --git a/src/core/SkBitmapCache.cpp b/src/core/SkBitmapCache.cpp
|
| index c411a1bd9dad18daba37f9e9d2c94cd52ccc7b32..f569db8e8a9270ef48fef397f8d2e85bb1d698e6 100644
|
| --- a/src/core/SkBitmapCache.cpp
|
| +++ b/src/core/SkBitmapCache.cpp
|
| @@ -8,6 +8,7 @@
|
| #include "SkBitmapCache.h"
|
| #include "SkResourceCache.h"
|
| #include "SkMipMap.h"
|
| +#include "SkPixelRef.h"
|
| #include "SkRect.h"
|
|
|
| /**
|
| @@ -112,6 +113,7 @@ void SkBitmapCache::Add(const SkBitmap& src, SkScalar invScaleX, SkScalar invSca
|
| BitmapRec* rec = SkNEW_ARGS(BitmapRec, (src.getGenerationID(), invScaleX, invScaleY,
|
| get_bounds_from_bitmap(src), result));
|
| CHECK_LOCAL(localCache, add, Add, rec);
|
| + src.pixelRef()->notifyAddedToCache();
|
| }
|
|
|
| bool SkBitmapCache::Find(uint32_t genID, const SkIRect& subset, SkBitmap* result,
|
| @@ -121,7 +123,7 @@ bool SkBitmapCache::Find(uint32_t genID, const SkIRect& subset, SkBitmap* result
|
| return CHECK_LOCAL(localCache, find, Find, key, BitmapRec::Finder, result);
|
| }
|
|
|
| -bool SkBitmapCache::Add(uint32_t genID, const SkIRect& subset, const SkBitmap& result,
|
| +bool SkBitmapCache::Add(SkPixelRef* pr, const SkIRect& subset, const SkBitmap& result,
|
| SkResourceCache* localCache) {
|
| SkASSERT(result.isImmutable());
|
|
|
| @@ -132,9 +134,10 @@ bool SkBitmapCache::Add(uint32_t genID, const SkIRect& subset, const SkBitmap& r
|
| || result.height() != subset.height()) {
|
| return false;
|
| } else {
|
| - BitmapRec* rec = SkNEW_ARGS(BitmapRec, (genID, SK_Scalar1, SK_Scalar1, subset, result));
|
| + BitmapRec* rec = SkNEW_ARGS(BitmapRec, (pr->getGenerationID(), 1, 1, subset, result));
|
|
|
| CHECK_LOCAL(localCache, add, Add, rec);
|
| + pr->notifyAddedToCache();
|
| return true;
|
| }
|
| }
|
| @@ -211,6 +214,7 @@ const SkMipMap* SkMipMapCache::AddAndRef(const SkBitmap& src, SkResourceCache* l
|
| if (mipmap) {
|
| MipMapRec* rec = SkNEW_ARGS(MipMapRec, (src, mipmap));
|
| CHECK_LOCAL(localCache, add, Add, rec);
|
| + src.pixelRef()->notifyAddedToCache();
|
| }
|
| return mipmap;
|
| }
|
|
|