| Index: src/core/SkResourceCache.cpp
|
| diff --git a/src/core/SkResourceCache.cpp b/src/core/SkResourceCache.cpp
|
| index efcff26c1a84c170d8d8a01b922c4550c7f049f7..4ed889a0aba3095900d934187f812f170217cca8 100644
|
| --- a/src/core/SkResourceCache.cpp
|
| +++ b/src/core/SkResourceCache.cpp
|
| @@ -435,6 +435,22 @@ size_t SkResourceCache::getSingleAllocationByteLimit() const {
|
| return fSingleAllocationByteLimit;
|
| }
|
|
|
| +size_t SkResourceCache::getEffectiveSingleAllocationByteLimit() const {
|
| + // fSingleAllocationByteLimit == 0 means the caller is asking for our default
|
| + size_t limit = fSingleAllocationByteLimit;
|
| +
|
| + // if we're not discardable (i.e. we are fixed-budget) then cap the single-limit
|
| + // to our budget.
|
| + if (NULL == fDiscardableFactory) {
|
| + if (0 == limit) {
|
| + limit = fTotalByteLimit;
|
| + } else {
|
| + limit = SkTMin(limit, fTotalByteLimit);
|
| + }
|
| + }
|
| + return limit;
|
| +}
|
| +
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| #include "SkThread.h"
|
| @@ -511,6 +527,11 @@ size_t SkResourceCache::GetSingleAllocationByteLimit() {
|
| return get_cache()->getSingleAllocationByteLimit();
|
| }
|
|
|
| +size_t SkResourceCache::GetEffectiveSingleAllocationByteLimit() {
|
| + SkAutoMutexAcquire am(gMutex);
|
| + return get_cache()->getEffectiveSingleAllocationByteLimit();
|
| +}
|
| +
|
| void SkResourceCache::PurgeAll() {
|
| SkAutoMutexAcquire am(gMutex);
|
| return get_cache()->purgeAll();
|
|
|