aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--dm/DM.cpp1
-rw-r--r--tools/sk_tool_utils.h2
-rw-r--r--tools/sk_tool_utils_font.cpp9
3 files changed, 4 insertions, 8 deletions
diff --git a/dm/DM.cpp b/dm/DM.cpp
index af20a78368..33ce0a41bf 100644
--- a/dm/DM.cpp
+++ b/dm/DM.cpp
@@ -797,6 +797,7 @@ int dm_main() {
}
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 4d4a5b4fcd..6730a89447 100644
--- a/tools/sk_tool_utils.h
+++ b/tools/sk_tool_utils.h
@@ -36,6 +36,8 @@ namespace sk_tool_utils {
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 5cb65b205c..925bd7dc76 100644
--- a/tools/sk_tool_utils_font.cpp
+++ b/tools/sk_tool_utils_font.cpp
@@ -20,17 +20,11 @@ namespace sk_tool_utils {
#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 @@ SkTypeface* create_font(const char* name, SkTypeface::Style style) {
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)));