| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright 2013 Google Inc. | 2  * Copyright 2013 Google Inc. | 
| 3  * | 3  * | 
| 4  * Use of this source code is governed by a BSD-style license that can be | 4  * Use of this source code is governed by a BSD-style license that can be | 
| 5  * found in the LICENSE file. | 5  * found in the LICENSE file. | 
| 6  */ | 6  */ | 
| 7 | 7 | 
| 8 #include "SkDiscardableMemory.h" | 8 #include "SkDiscardableMemory.h" | 
| 9 #include "SkDiscardableMemoryPool.h" | 9 #include "SkDiscardableMemoryPool.h" | 
| 10 #include "SkImageGenerator.h" | 10 #include "SkImageGenerator.h" | 
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 148 void DiscardableMemoryPool::dumpDownTo(size_t budget) { | 148 void DiscardableMemoryPool::dumpDownTo(size_t budget) { | 
| 149     if (fMutex != NULL) { | 149     if (fMutex != NULL) { | 
| 150         fMutex->assertHeld(); | 150         fMutex->assertHeld(); | 
| 151     } | 151     } | 
| 152     if (fUsed <= budget) { | 152     if (fUsed <= budget) { | 
| 153         return; | 153         return; | 
| 154     } | 154     } | 
| 155     typedef SkTInternalLList<PoolDiscardableMemory>::Iter Iter; | 155     typedef SkTInternalLList<PoolDiscardableMemory>::Iter Iter; | 
| 156     Iter iter; | 156     Iter iter; | 
| 157     PoolDiscardableMemory* cur = iter.init(fList, Iter::kTail_IterStart); | 157     PoolDiscardableMemory* cur = iter.init(fList, Iter::kTail_IterStart); | 
| 158     while ((fUsed > budget) && (NULL != cur)) { | 158     while ((fUsed > budget) && (cur)) { | 
| 159         if (!cur->fLocked) { | 159         if (!cur->fLocked) { | 
| 160             PoolDiscardableMemory* dm = cur; | 160             PoolDiscardableMemory* dm = cur; | 
| 161             SkASSERT(dm->fPointer != NULL); | 161             SkASSERT(dm->fPointer != NULL); | 
| 162             sk_free(dm->fPointer); | 162             sk_free(dm->fPointer); | 
| 163             dm->fPointer = NULL; | 163             dm->fPointer = NULL; | 
| 164             SkASSERT(fUsed >= dm->fBytes); | 164             SkASSERT(fUsed >= dm->fBytes); | 
| 165             fUsed -= dm->fBytes; | 165             fUsed -= dm->fBytes; | 
| 166             cur = iter.prev(); | 166             cur = iter.prev(); | 
| 167             // Purged DMs are taken out of the list.  This saves times | 167             // Purged DMs are taken out of the list.  This saves times | 
| 168             // looking them up.  Purged DMs are NOT deleted. | 168             // looking them up.  Purged DMs are NOT deleted. | 
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 259 SkDiscardableMemoryPool* SkDiscardableMemoryPool::Create(size_t size, SkBaseMute
     x* mutex) { | 259 SkDiscardableMemoryPool* SkDiscardableMemoryPool::Create(size_t size, SkBaseMute
     x* mutex) { | 
| 260     return SkNEW_ARGS(DiscardableMemoryPool, (size, mutex)); | 260     return SkNEW_ARGS(DiscardableMemoryPool, (size, mutex)); | 
| 261 } | 261 } | 
| 262 | 262 | 
| 263 SkDiscardableMemoryPool* SkGetGlobalDiscardableMemoryPool() { | 263 SkDiscardableMemoryPool* SkGetGlobalDiscardableMemoryPool() { | 
| 264     SK_DECLARE_STATIC_LAZY_PTR(SkDiscardableMemoryPool, global, create_global_po
     ol); | 264     SK_DECLARE_STATIC_LAZY_PTR(SkDiscardableMemoryPool, global, create_global_po
     ol); | 
| 265     return global.get(); | 265     return global.get(); | 
| 266 } | 266 } | 
| 267 | 267 | 
| 268 //////////////////////////////////////////////////////////////////////////////// | 268 //////////////////////////////////////////////////////////////////////////////// | 
| OLD | NEW | 
|---|