Home | History | Annotate | Download | only in gradients

Lines Matching defs:Entry

13 struct SkGradientBitmapCache::Entry {
14 Entry* fPrev;
15 Entry* fNext;
21 Entry(const void* buffer, size_t size, const SkBitmap& bm)
30 ~Entry() { sk_free(fBuffer); }
47 Entry* entry = fHead;
48 while (entry) {
49 Entry* next = entry->fNext;
50 delete entry;
51 entry = next;
55 SkGradientBitmapCache::Entry* SkGradientBitmapCache::release(Entry* entry) const {
56 if (entry->fPrev) {
57 SkASSERT(fHead != entry);
58 entry->fPrev->fNext = entry->fNext;
60 SkASSERT(fHead == entry);
61 fHead = entry->fNext;
63 if (entry->fNext) {
64 SkASSERT(fTail != entry);
65 entry->fNext->fPrev = entry->fPrev;
67 SkASSERT(fTail == entry);
68 fTail = entry->fPrev;
70 return entry;
73 void SkGradientBitmapCache::attachToHead(Entry* entry) const {
74 entry->fPrev = nullptr;
75 entry->fNext = fHead;
77 fHead->fPrev = entry;
79 fTail = entry;
81 fHead = entry;
87 Entry* entry = fHead;
88 while (entry) {
89 if (entry->equals(buffer, size)) {
91 *bm = entry->fBitmap;
94 this->release(entry);
95 this->attachToHead(entry);
98 entry = entry->fNext;
112 Entry* entry = new Entry(buffer, len, bm);
113 this->attachToHead(entry);
134 Entry* entry = fHead;
136 while (entry) {
138 entry = entry->fNext;
142 entry = fTail;
143 while (entry) {
145 entry = entry->fPrev;