diff options
Diffstat (limited to 'src/core/SkStrikeCache.cpp')
-rw-r--r-- | src/core/SkStrikeCache.cpp | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/core/SkStrikeCache.cpp b/src/core/SkStrikeCache.cpp index 0fb36aaf14..04a1a80030 100644 --- a/src/core/SkStrikeCache.cpp +++ b/src/core/SkStrikeCache.cpp @@ -342,16 +342,6 @@ void SkStrikeCache::forEachStrike(std::function<void(const SkGlyphCache&)> visit } } -SkStrikeCache::Node* SkStrikeCache::internalGetTail() const { - Node* node = fHead; - if (node) { - while (node->fNext) { - node = node->fNext; - } - } - return node; -} - size_t SkStrikeCache::internalPurge(size_t minBytesNeeded) { this->validate(); @@ -416,6 +406,10 @@ void SkStrikeCache::internalAttachToHead(Node* node) { } fHead = node; + if (fTail == nullptr) { + fTail = node; + } + fCacheCount += 1; fTotalMemoryUsed += node->fCache.getMemoryUsed(); } @@ -432,6 +426,8 @@ void SkStrikeCache::internalDetachCache(Node* node) { } if (node->fNext) { node->fNext->fPrev = node->fPrev; + } else { + fTail = node->fPrev; } node->fPrev = node->fNext = nullptr; } |