cleanup textblob cache sanity check and prevent it from bitrotting

TBR=bsalomon@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1684513004

Review URL: https://codereview.chromium.org/1684513004
diff --git a/src/gpu/text/GrAtlasTextBlob.cpp b/src/gpu/text/GrAtlasTextBlob.cpp
index bf8f286..cac1e53 100644
--- a/src/gpu/text/GrAtlasTextBlob.cpp
+++ b/src/gpu/text/GrAtlasTextBlob.cpp
@@ -422,104 +422,89 @@
                              props, distanceAdjustTable, cache);
 }
 
-// TODO get this code building again
-#ifdef CACHE_SANITY_CHECK
 void GrAtlasTextBlob::AssertEqual(const GrAtlasTextBlob& l, const GrAtlasTextBlob& r) {
-    SkASSERT(l.fSize == r.fSize);
-    SkASSERT(l.fPool == r.fPool);
+    SkASSERT_RELEASE(l.fSize == r.fSize);
+    SkASSERT_RELEASE(l.fPool == r.fPool);
 
-    SkASSERT(l.fBlurRec.fSigma == r.fBlurRec.fSigma);
-    SkASSERT(l.fBlurRec.fStyle == r.fBlurRec.fStyle);
-    SkASSERT(l.fBlurRec.fQuality == r.fBlurRec.fQuality);
+    SkASSERT_RELEASE(l.fBlurRec.fSigma == r.fBlurRec.fSigma);
+    SkASSERT_RELEASE(l.fBlurRec.fStyle == r.fBlurRec.fStyle);
+    SkASSERT_RELEASE(l.fBlurRec.fQuality == r.fBlurRec.fQuality);
 
-    SkASSERT(l.fStrokeInfo.fFrameWidth == r.fStrokeInfo.fFrameWidth);
-    SkASSERT(l.fStrokeInfo.fMiterLimit == r.fStrokeInfo.fMiterLimit);
-    SkASSERT(l.fStrokeInfo.fJoin == r.fStrokeInfo.fJoin);
+    SkASSERT_RELEASE(l.fStrokeInfo.fFrameWidth == r.fStrokeInfo.fFrameWidth);
+    SkASSERT_RELEASE(l.fStrokeInfo.fMiterLimit == r.fStrokeInfo.fMiterLimit);
+    SkASSERT_RELEASE(l.fStrokeInfo.fJoin == r.fStrokeInfo.fJoin);
 
-    SkASSERT(l.fBigGlyphs.count() == r.fBigGlyphs.count());
+    SkASSERT_RELEASE(l.fBigGlyphs.count() == r.fBigGlyphs.count());
     for (int i = 0; i < l.fBigGlyphs.count(); i++) {
         const BigGlyph& lBigGlyph = l.fBigGlyphs[i];
         const BigGlyph& rBigGlyph = r.fBigGlyphs[i];
 
-        SkASSERT(lBigGlyph.fPath == rBigGlyph.fPath);
+        SkASSERT_RELEASE(lBigGlyph.fPath == rBigGlyph.fPath);
         // We can't assert that these have the same translations
     }
 
-    SkASSERT(l.fKey == r.fKey);
-    SkASSERT(l.fViewMatrix.cheapEqualTo(r.fViewMatrix));
-    SkASSERT(l.fPaintColor == r.fPaintColor);
-    SkASSERT(l.fMaxMinScale == r.fMaxMinScale);
-    SkASSERT(l.fMinMaxScale == r.fMinMaxScale);
-    SkASSERT(l.fTextType == r.fTextType);
+    SkASSERT_RELEASE(l.fKey == r.fKey);
+    SkASSERT_RELEASE(l.fViewMatrix.cheapEqualTo(r.fViewMatrix));
+    //SkASSERT_RELEASE(l.fPaintColor == r.fPaintColor); // Colors might not actually be identical
+    SkASSERT_RELEASE(l.fMaxMinScale == r.fMaxMinScale);
+    SkASSERT_RELEASE(l.fMinMaxScale == r.fMinMaxScale);
+    SkASSERT_RELEASE(l.fTextType == r.fTextType);
 
-    SkASSERT(l.fRunCount == r.fRunCount);
+    SkASSERT_RELEASE(l.fRunCount == r.fRunCount);
     for (int i = 0; i < l.fRunCount; i++) {
         const Run& lRun = l.fRuns[i];
         const Run& rRun = r.fRuns[i];
 
-        if (lRun.fStrike.get()) {
-            SkASSERT(rRun.fStrike.get());
-            SkASSERT(GrBatchTextStrike::GetKey(*lRun.fStrike) ==
-                     GrBatchTextStrike::GetKey(*rRun.fStrike));
-
-        } else {
-            SkASSERT(!rRun.fStrike.get());
-        }
-
         if (lRun.fTypeface.get()) {
-            SkASSERT(rRun.fTypeface.get());
-            SkASSERT(SkTypeface::Equal(lRun.fTypeface, rRun.fTypeface));
+            SkASSERT_RELEASE(rRun.fTypeface.get());
+            SkASSERT_RELEASE(SkTypeface::Equal(lRun.fTypeface, rRun.fTypeface));
         } else {
-            SkASSERT(!rRun.fTypeface.get());
+            SkASSERT_RELEASE(!rRun.fTypeface.get());
         }
 
-        // We offset bounds right before flush time so they will not be correct here
-        //SkASSERT(lRun.fVertexBounds == rRun.fVertexBounds);
 
-        SkASSERT(lRun.fDescriptor.getDesc());
-        SkASSERT(rRun.fDescriptor.getDesc());
-        SkASSERT(lRun.fDescriptor.getDesc()->equals(*rRun.fDescriptor.getDesc()));
+        SkASSERT_RELEASE(lRun.fDescriptor.getDesc());
+        SkASSERT_RELEASE(rRun.fDescriptor.getDesc());
+        SkASSERT_RELEASE(lRun.fDescriptor.getDesc()->equals(*rRun.fDescriptor.getDesc()));
 
         if (lRun.fOverrideDescriptor.get()) {
-            SkASSERT(lRun.fOverrideDescriptor->getDesc());
-            SkASSERT(rRun.fOverrideDescriptor.get() && rRun.fOverrideDescriptor->getDesc());;
-            SkASSERT(lRun.fOverrideDescriptor->getDesc()->equals(
+            SkASSERT_RELEASE(lRun.fOverrideDescriptor->getDesc());
+            SkASSERT_RELEASE(rRun.fOverrideDescriptor.get() && rRun.fOverrideDescriptor->getDesc());
+            SkASSERT_RELEASE(lRun.fOverrideDescriptor->getDesc()->equals(
                     *rRun.fOverrideDescriptor->getDesc()));
         } else {
-            SkASSERT(!rRun.fOverrideDescriptor.get());
+            SkASSERT_RELEASE(!rRun.fOverrideDescriptor.get());
         }
 
         // color can be changed
         //SkASSERT(lRun.fColor == rRun.fColor);
-        SkASSERT(lRun.fInitialized == rRun.fInitialized);
-        SkASSERT(lRun.fDrawAsPaths == rRun.fDrawAsPaths);
+        SkASSERT_RELEASE(lRun.fInitialized == rRun.fInitialized);
+        SkASSERT_RELEASE(lRun.fDrawAsPaths == rRun.fDrawAsPaths);
 
-        SkASSERT(lRun.fSubRunInfo.count() == rRun.fSubRunInfo.count());
+        SkASSERT_RELEASE(lRun.fSubRunInfo.count() == rRun.fSubRunInfo.count());
         for(int j = 0; j < lRun.fSubRunInfo.count(); j++) {
             const Run::SubRunInfo& lSubRun = lRun.fSubRunInfo[j];
             const Run::SubRunInfo& rSubRun = rRun.fSubRunInfo[j];
 
-            SkASSERT(lSubRun.fVertexStartIndex == rSubRun.fVertexStartIndex);
-            SkASSERT(lSubRun.fVertexEndIndex == rSubRun.fVertexEndIndex);
-            SkASSERT(lSubRun.fGlyphStartIndex == rSubRun.fGlyphStartIndex);
-            SkASSERT(lSubRun.fGlyphEndIndex == rSubRun.fGlyphEndIndex);
-            SkASSERT(lSubRun.fTextRatio == rSubRun.fTextRatio);
-            SkASSERT(lSubRun.fMaskFormat == rSubRun.fMaskFormat);
-            SkASSERT(lSubRun.fDrawAsDistanceFields == rSubRun.fDrawAsDistanceFields);
-            SkASSERT(lSubRun.fUseLCDText == rSubRun.fUseLCDText);
+            // TODO we can do this check, but we have to apply the VM to the old vertex bounds
+            //SkASSERT_RELEASE(lSubRun.vertexBounds() == rSubRun.vertexBounds());
 
-            //We can't compare the bulk use tokens with this method
-            /*
-            SkASSERT(lSubRun.fBulkUseToken.fPlotsToUpdate.count() ==
-                     rSubRun.fBulkUseToken.fPlotsToUpdate.count());
-            SkASSERT(lSubRun.fBulkUseToken.fPlotAlreadyUpdated ==
-                     rSubRun.fBulkUseToken.fPlotAlreadyUpdated);
-            for (int k = 0; k < lSubRun.fBulkUseToken.fPlotsToUpdate.count(); k++) {
-                SkASSERT(lSubRun.fBulkUseToken.fPlotsToUpdate[k] ==
-                         rSubRun.fBulkUseToken.fPlotsToUpdate[k]);
-            }*/
+            if (lSubRun.strike()) {
+                SkASSERT_RELEASE(rSubRun.strike());
+                SkASSERT_RELEASE(GrBatchTextStrike::GetKey(*lSubRun.strike()) ==
+                                 GrBatchTextStrike::GetKey(*rSubRun.strike()));
+
+            } else {
+                SkASSERT_RELEASE(!rSubRun.strike());
+            }
+
+            SkASSERT_RELEASE(lSubRun.vertexStartIndex() == rSubRun.vertexStartIndex());
+            SkASSERT_RELEASE(lSubRun.vertexEndIndex() == rSubRun.vertexEndIndex());
+            SkASSERT_RELEASE(lSubRun.glyphStartIndex() == rSubRun.glyphStartIndex());
+            SkASSERT_RELEASE(lSubRun.glyphEndIndex() == rSubRun.glyphEndIndex());
+            SkASSERT_RELEASE(lSubRun.maskFormat() == rSubRun.maskFormat());
+            SkASSERT_RELEASE(lSubRun.drawAsDistanceFields() == rSubRun.drawAsDistanceFields());
+            SkASSERT_RELEASE(lSubRun.hasUseLCDText() == rSubRun.hasUseLCDText());
         }
     }
 }
-
-#endif
diff --git a/src/gpu/text/GrAtlasTextBlob.h b/src/gpu/text/GrAtlasTextBlob.h
index af6441e..4351aae 100644
--- a/src/gpu/text/GrAtlasTextBlob.h
+++ b/src/gpu/text/GrAtlasTextBlob.h
@@ -25,7 +25,7 @@
 
 // With this flag enabled, the GrAtlasTextContext will, as a sanity check, regenerate every blob
 // that comes in to verify the integrity of its cache
-//#define CACHE_SANITY_CHECK // VERY SLOW
+#define CACHE_SANITY_CHECK 0
 
 /*
  * A GrAtlasTextBlob contains a fully processed SkTextBlob, suitable for nearly immediate drawing
@@ -200,10 +200,7 @@
     static const size_t kLCDTextVASize = kGrayTextVASize;
     static const int kVerticesPerGlyph = 4;
 
-#ifdef CACHE_SANITY_CHECK
     static void AssertEqual(const GrAtlasTextBlob&, const GrAtlasTextBlob&);
-    size_t fSize;
-#endif
 
     // The color here is the GrPaint color, and it is used to determine whether we
     // have to regenerate LCD text blobs.
@@ -443,6 +440,7 @@
     Key fKey;
     SkMatrix fViewMatrix;
     SkMatrix fInitialViewMatrixInverse;
+    size_t fSize;
     GrColor fPaintColor;
     SkScalar fInitialX;
     SkScalar fInitialY;
diff --git a/src/gpu/text/GrAtlasTextContext.cpp b/src/gpu/text/GrAtlasTextContext.cpp
index eef4f0b..91fa658 100644
--- a/src/gpu/text/GrAtlasTextContext.cpp
+++ b/src/gpu/text/GrAtlasTextContext.cpp
@@ -156,20 +156,18 @@
                                      blob, x, y, drawFilter);
         } else {
             fCache->makeMRU(cacheBlob);
-#ifdef CACHE_SANITY_CHECK
-            {
+
+            if (CACHE_SANITY_CHECK) {
                 int glyphCount = 0;
                 int runCount = 0;
                 GrTextBlobCache::BlobGlyphCount(&glyphCount, &runCount, blob);
-                SkAutoTUnref<GrAtlasTextBlob> sanityBlob(fCache->createBlob(glyphCount, runCount,
-                                                                            kGrayTextVASize));
+                SkAutoTUnref<GrAtlasTextBlob> sanityBlob(
+                    fCache->createBlob(glyphCount, runCount, GrAtlasTextBlob::kGrayTextVASize));
                 GrTextBlobCache::SetupCacheBlobKey(sanityBlob, key, blurRec, skPaint);
                 this->regenerateTextBlob(sanityBlob, skPaint, grPaint.getColor(), viewMatrix,
                                          blob, x, y, drawFilter);
                 GrAtlasTextBlob::AssertEqual(*sanityBlob, *cacheBlob);
             }
-
-#endif
         }
     } else {
         if (canCache) {
diff --git a/src/gpu/text/GrTextBlobCache.cpp b/src/gpu/text/GrTextBlobCache.cpp
index 685284b..7fa2d1a 100644
--- a/src/gpu/text/GrTextBlobCache.cpp
+++ b/src/gpu/text/GrTextBlobCache.cpp
@@ -23,14 +23,12 @@
                   sizeof(GrAtlasTextBlob::Run) * runCount;
 
     void* allocation = fPool.allocate(size);
-#ifdef CACHE_SANITY_CHECK
-    sk_bzero(allocation, size);
-#endif
+    if (CACHE_SANITY_CHECK) {
+        sk_bzero(allocation, size);
+    }
 
     GrAtlasTextBlob* cacheBlob = new (allocation) GrAtlasTextBlob;
-#ifdef CACHE_SANITY_CHECK
     cacheBlob->fSize = size;
-#endif
 
     // setup offsets for vertices / glyphs
     cacheBlob->fVertices = sizeof(GrAtlasTextBlob) + reinterpret_cast<unsigned char*>(cacheBlob);