aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkStrikeCache.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/SkStrikeCache.cpp')
-rw-r--r--src/core/SkStrikeCache.cpp16
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;
}