add PurgeResourceCache to track leaks
TBR=halcananry
Author: reed@google.com
Review URL: https://codereview.chromium.org/554263005
diff --git a/src/core/SkResourceCache.cpp b/src/core/SkResourceCache.cpp
index 6400e8a..9262c34 100644
--- a/src/core/SkResourceCache.cpp
+++ b/src/core/SkResourceCache.cpp
@@ -303,7 +303,7 @@
fCount -= 1;
}
-void SkResourceCache::purgeAsNeeded() {
+void SkResourceCache::purgeAsNeeded(bool forcePurge) {
size_t byteLimit;
int countLimit;
@@ -317,7 +317,7 @@
Rec* rec = fTail;
while (rec) {
- if (fTotalBytesUsed < byteLimit && fCount < countLimit) {
+ if (!forcePurge && fTotalBytesUsed < byteLimit && fCount < countLimit) {
break;
}
@@ -564,6 +564,11 @@
return get_cache()->getSingleAllocationByteLimit();
}
+void SkResourceCache::PurgeAll() {
+ SkAutoMutexAcquire am(gMutex);
+ return get_cache()->purgeAll();
+}
+
const SkResourceCache::Rec* SkResourceCache::FindAndLock(const Key& key) {
SkAutoMutexAcquire am(gMutex);
return get_cache()->findAndLock(key);
@@ -603,3 +608,7 @@
return SkResourceCache::SetSingleAllocationByteLimit(newLimit);
}
+void SkGraphics::PurgeResourceCache() {
+ return SkResourceCache::PurgeAll();
+}
+