call portable font cleanup only once at app end

R=mtklein@google.com

Review URL: https://codereview.chromium.org/1180593005
diff --git a/dm/DM.cpp b/dm/DM.cpp
index af20a78..33ce0a4 100644
--- a/dm/DM.cpp
+++ b/dm/DM.cpp
@@ -797,6 +797,7 @@
     }
     tg.wait();
     // At this point we're back in single-threaded land.
+    sk_tool_utils::release_portable_typefaces();
 
     SkDebugf("\n");
     if (gFailures.count() > 0) {
diff --git a/tools/sk_tool_utils.h b/tools/sk_tool_utils.h
index 4d4a5b4..6730a89 100644
--- a/tools/sk_tool_utils.h
+++ b/tools/sk_tool_utils.h
@@ -36,6 +36,8 @@
                                SkTypeface::Style style = SkTypeface::kNormal);
     SkTypeface* create_portable_typeface(const char* name, SkTypeface::Style style);
     SkTypeface* create_portable_typeface_always(const char* name, SkTypeface::Style style);
+    /** Call to clean up portable font references. */
+    void release_portable_typefaces();
     void report_used_chars();
 
     /**
diff --git a/tools/sk_tool_utils_font.cpp b/tools/sk_tool_utils_font.cpp
index 5cb65b2..925bd7d 100644
--- a/tools/sk_tool_utils_font.cpp
+++ b/tools/sk_tool_utils_font.cpp
@@ -20,17 +20,11 @@
 #include "test_font_serif.cpp"
 #include "test_font_index.cpp"
 
-static void release_portable_typefaces() {
-    // We'll clean this up in our own tests, but disable for clients.
-    // Chrome seems to have funky multi-process things going on in unit tests that
-    // makes this unsafe to delete when the main process atexit()s.
-    // SkLazyPtr does the same sort of thing.
-#if SK_DEVELOPER
+void release_portable_typefaces() {
     for (int index = 0; index < gTestFontsCount; ++index) {
         SkTestFontData& fontData = gTestFonts[index];
         SkSafeUnref(fontData.fFontCache);
     }
-#endif
 }
 
 SK_DECLARE_STATIC_MUTEX(gTestFontMutex);
@@ -69,7 +63,6 @@
             SkDEBUGCODE(font->fDebugName = sub->fName);
             SkDEBUGCODE(font->fDebugStyle = sub->fStyle);
             fontData->fFontCache = SkSafeRef(font);
-            atexit(release_portable_typefaces);
         }
     }
     return SkNEW_ARGS(SkTestTypeface, (font, SkFontStyle(style)));