Switch the thread-safe proxy cache over to using an arena for its entries

Bug: 1108408
Change-Id: Ib0260f72be3ac04fc1cf82c857bf4e99ec4ea239
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317770
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/GrThreadSafeUniquelyKeyedProxyViewCache.cpp b/src/gpu/GrThreadSafeUniquelyKeyedProxyViewCache.cpp
index c2fd7dd..0c305d2 100644
--- a/src/gpu/GrThreadSafeUniquelyKeyedProxyViewCache.cpp
+++ b/src/gpu/GrThreadSafeUniquelyKeyedProxyViewCache.cpp
@@ -10,7 +10,7 @@
 GrThreadSafeUniquelyKeyedProxyViewCache::GrThreadSafeUniquelyKeyedProxyViewCache() {}
 
 GrThreadSafeUniquelyKeyedProxyViewCache::~GrThreadSafeUniquelyKeyedProxyViewCache() {
-    fUniquelyKeyedProxyViews.foreach([](Entry* v) { delete v; });
+    fUniquelyKeyedProxyViews.foreach([this](Entry* v) { this->recycleEntry(v); });
 }
 
 #if GR_TEST_UTILS
@@ -30,7 +30,7 @@
 void GrThreadSafeUniquelyKeyedProxyViewCache::dropAllRefs() {
     SkAutoSpinlock lock{fSpinLock};
 
-    fUniquelyKeyedProxyViews.foreach([](Entry* v) { delete v; });
+    fUniquelyKeyedProxyViews.foreach([this](Entry* v) { this->recycleEntry(v); });
     fUniquelyKeyedProxyViews.reset();
 }
 
@@ -58,8 +58,7 @@
                                                                 const GrSurfaceProxyView& view) {
     Entry* tmp = fUniquelyKeyedProxyViews.find(key);
     if (!tmp) {
-        // TODO: block allocate here?
-        tmp = new Entry(key, view);
+        tmp = this->getEntry(key, view);
         fUniquelyKeyedProxyViews.add(tmp);
     }