Revert "Simplify VertexRegenerator GrStrikeCache handling"

This reverts commit 59d529cafa86b2bf4522bfcdac2fef05b5467900.

Reason for revert: use-after-frees, *SAN bots

Original change's description:
> Simplify VertexRegenerator GrStrikeCache handling
> 
> The SubRun has access to the GrStrikeCache pointer, there is
> no need to pass it around the VertexRegenerator.
> 
> Change-Id: I867b1b29b29e595f92ad57505dcd27dd0f6b726f
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/264649
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Mike Klein <mtklein@google.com>

TBR=mtklein@google.com,herb@google.com

Change-Id: I7de7841fdd1efb5df845613bd0116fbaf12d1c49
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/264756
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
diff --git a/src/gpu/text/GrTextBlob.cpp b/src/gpu/text/GrTextBlob.cpp
index 49a6b90..24d147c 100644
--- a/src/gpu/text/GrTextBlob.cpp
+++ b/src/gpu/text/GrTextBlob.cpp
@@ -127,9 +127,6 @@
 GrDrawOpAtlas::BulkUseTokenUpdater* GrTextBlob::SubRun::bulkUseToken() { return &fBulkUseToken; }
 void GrTextBlob::SubRun::setStrike(sk_sp<GrTextStrike> strike) { fStrike = std::move(strike); }
 GrTextStrike* GrTextBlob::SubRun::strike() const { return fStrike.get(); }
-GrStrikeCache* GrTextBlob::SubRun::grStrikeCache() const {
-    return fBlob->fStrikeCache;
-}
 GrMaskFormat GrTextBlob::SubRun::maskFormat() const { return fMaskFormat; }
 size_t GrTextBlob::SubRun::vertexStride() const {
     return GetVertexStride(this->maskFormat(), this->hasW());
@@ -783,9 +780,11 @@
 GrTextBlob::VertexRegenerator::VertexRegenerator(GrResourceProvider* resourceProvider,
                                                  GrTextBlob::SubRun* subRun,
                                                  GrDeferredUploadTarget* uploadTarget,
+                                                 GrStrikeCache* grStrikeCache,
                                                  GrAtlasManager* fullAtlasManager)
         : fResourceProvider(resourceProvider)
         , fUploadTarget(uploadTarget)
+        , fGrStrikeCache(grStrikeCache)
         , fFullAtlasManager(fullAtlasManager)
         , fSubRun(subRun){
     // Because the GrStrikeCache may evict the strike a blob depends on using for
@@ -814,7 +813,7 @@
 
     if (fActions.regenStrike) {
         // Take the glyphs from the old strike, and translate them a new strike.
-        sk_sp<GrTextStrike> newStrike = strikeSpec.findOrCreateGrStrike(fSubRun->grStrikeCache());
+        sk_sp<GrTextStrike> newStrike = strikeSpec.findOrCreateGrStrike(fGrStrikeCache);
 
         // Start this batch at the start of the subRun plus any glyphs that were previously
         // processed.
@@ -841,9 +840,8 @@
 
         if (!fFullAtlasManager->hasGlyph(glyph)) {
             code = grStrike->addGlyphToAtlas(
-                    fResourceProvider, fUploadTarget, fSubRun->grStrikeCache(), fFullAtlasManager,
-                    glyph, fMetricsAndImages.get(), fSubRun->maskFormat(),
-                    fSubRun->needsTransform());
+                    fResourceProvider, fUploadTarget, fGrStrikeCache, fFullAtlasManager, glyph,
+                    fMetricsAndImages.get(), fSubRun->maskFormat(), fSubRun->needsTransform());
             if (code != GrDrawOpAtlas::ErrorCode::kSucceeded) {
                 break;
             }