Increase encapsulation of GrThreadSafeCache::Entry

Prepare this class to hold either a proxyView or a vertex blob

Bug: 1108408
Change-Id: Ib6abb4da64ccc70b9e2af2546e1b071396dd42cb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328836
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/GrThreadSafeCache.cpp b/src/gpu/GrThreadSafeCache.cpp
index e63a5cd..a275075 100644
--- a/src/gpu/GrThreadSafeCache.cpp
+++ b/src/gpu/GrThreadSafeCache.cpp
@@ -60,8 +60,8 @@
             return;
         }
 
-        if (cur->fView.proxy()->unique()) {
-            fUniquelyKeyedEntryMap.remove(cur->fKey);
+        if (cur->uniquelyHeld()) {
+            fUniquelyKeyedEntryMap.remove(cur->key());
             fUniquelyKeyedEntryList.remove(cur);
             this->recycleEntry(cur);
         }
@@ -84,8 +84,8 @@
             return;
         }
 
-        if (cur->fView.proxy()->unique()) {
-            fUniquelyKeyedEntryMap.remove(cur->fKey);
+        if (cur->uniquelyHeld()) {
+            fUniquelyKeyedEntryMap.remove(cur->key());
             fUniquelyKeyedEntryList.remove(cur);
             this->recycleEntry(cur);
         }
@@ -104,7 +104,7 @@
         tmp->fLastAccess = GrStdSteadyClock::now();
         fUniquelyKeyedEntryList.remove(tmp);
         fUniquelyKeyedEntryList.addToHead(tmp);
-        return { tmp->fView, tmp->fKey.refCustomData() };
+        return { tmp->view(), tmp->refCustomData() };
     }
 
     return {};
@@ -134,8 +134,7 @@
         fFreeEntryList = entry->fNext;
         entry->fNext = nullptr;
 
-        entry->fKey = key;
-        entry->fView = view;
+        entry->set(key, view);
     } else {
         entry = fEntryAllocator.make<Entry>(key, view);
     }
@@ -150,8 +149,7 @@
 void GrThreadSafeCache::recycleEntry(Entry* dead) {
     SkASSERT(!dead->fPrev && !dead->fNext && !dead->fList);
 
-    dead->fKey.reset();
-    dead->fView.reset();
+    dead->makeEmpty();
 
     dead->fNext = fFreeEntryList;
     fFreeEntryList = dead;
@@ -167,7 +165,7 @@
         SkASSERT(fUniquelyKeyedEntryMap.find(key));
     }
 
-    return { tmp->fView, tmp->fKey.refCustomData() };
+    return { tmp->view(), tmp->refCustomData() };
 }
 
 GrSurfaceProxyView GrThreadSafeCache::add(const GrUniqueKey& key, const GrSurfaceProxyView& view) {