| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2012 Google Inc. | 3 * Copyright 2012 Google Inc. |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 #include "SkBitmapHeap.h" | 9 #include "SkBitmapHeap.h" |
| 10 | 10 |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 } | 104 } |
| 105 } | 105 } |
| 106 fBytesAllocated -= (fStorage.count() * sizeof(SkBitmapHeapEntry)); | 106 fBytesAllocated -= (fStorage.count() * sizeof(SkBitmapHeapEntry)); |
| 107 ) | 107 ) |
| 108 SkASSERT(0 == fBytesAllocated); | 108 SkASSERT(0 == fBytesAllocated); |
| 109 fStorage.deleteAll(); | 109 fStorage.deleteAll(); |
| 110 SkSafeUnref(fExternalStorage); | 110 SkSafeUnref(fExternalStorage); |
| 111 fLookupTable.deleteAll(); | 111 fLookupTable.deleteAll(); |
| 112 } | 112 } |
| 113 | 113 |
| 114 SkTRefArray<SkBitmap>* SkBitmapHeap::extractBitmaps() const { | |
| 115 const int size = fStorage.count(); | |
| 116 SkTRefArray<SkBitmap>* array = NULL; | |
| 117 if (size > 0) { | |
| 118 array = SkTRefArray<SkBitmap>::Create(size); | |
| 119 for (int i = 0; i < size; i++) { | |
| 120 // make a shallow copy of the bitmap | |
| 121 array->writableAt(i) = fStorage[i]->fBitmap; | |
| 122 } | |
| 123 } | |
| 124 return array; | |
| 125 } | |
| 126 | |
| 127 void SkBitmapHeap::removeFromLRU(SkBitmapHeap::LookupEntry* entry) { | 114 void SkBitmapHeap::removeFromLRU(SkBitmapHeap::LookupEntry* entry) { |
| 128 if (fMostRecentlyUsed == entry) { | 115 if (fMostRecentlyUsed == entry) { |
| 129 fMostRecentlyUsed = entry->fLessRecentlyUsed; | 116 fMostRecentlyUsed = entry->fLessRecentlyUsed; |
| 130 if (NULL == fMostRecentlyUsed) { | 117 if (NULL == fMostRecentlyUsed) { |
| 131 SkASSERT(fLeastRecentlyUsed == entry); | 118 SkASSERT(fLeastRecentlyUsed == entry); |
| 132 fLeastRecentlyUsed = NULL; | 119 fLeastRecentlyUsed = NULL; |
| 133 } else { | 120 } else { |
| 134 fMostRecentlyUsed->fMoreRecentlyUsed = NULL; | 121 fMostRecentlyUsed->fMoreRecentlyUsed = NULL; |
| 135 } | 122 } |
| 136 } else { | 123 } else { |
| (...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 399 for (int i = 0; i < fDeferredEntries.count(); i++) { | 386 for (int i = 0; i < fDeferredEntries.count(); i++) { |
| 400 SkASSERT(fOwnerCount != IGNORE_OWNERS); | 387 SkASSERT(fOwnerCount != IGNORE_OWNERS); |
| 401 SkBitmapHeapEntry* heapEntry = this->getEntry(fDeferredEntries[i]); | 388 SkBitmapHeapEntry* heapEntry = this->getEntry(fDeferredEntries[i]); |
| 402 SkASSERT(heapEntry != NULL); | 389 SkASSERT(heapEntry != NULL); |
| 403 heapEntry->addReferences(fOwnerCount); | 390 heapEntry->addReferences(fOwnerCount); |
| 404 } | 391 } |
| 405 } | 392 } |
| 406 fDeferAddingOwners = false; | 393 fDeferAddingOwners = false; |
| 407 fDeferredEntries.reset(); | 394 fDeferredEntries.reset(); |
| 408 } | 395 } |
| OLD | NEW |