Index: src/core/SkGlyphCache.cpp |
diff --git a/src/core/SkGlyphCache.cpp b/src/core/SkGlyphCache.cpp |
index 3f64d6ed48bc0fea8abaa55c44a72c3083f77f88..ed158d3600c0ac50b2558ba0e629cf3194856a9f 100644 |
--- a/src/core/SkGlyphCache.cpp |
+++ b/src/core/SkGlyphCache.cpp |
@@ -14,6 +14,8 @@ |
#include "SkTraceMemoryDump.h" |
#include "SkTypeface.h" |
+#include <cctype> |
+ |
//#define SPEW_PURGE_STATUS |
namespace { |
@@ -427,12 +429,19 @@ static void sk_trace_dump_visitor(const SkGlyphCache& cache, void* context) { |
*counter += 1; |
const SkTypeface* face = cache.getScalerContext()->getTypeface(); |
+ const SkScalerContextRec& rec = cache.getScalerContext()->getRec(); |
+ |
SkString fontName; |
face->getFamilyName(&fontName); |
- const SkScalerContextRec& rec = cache.getScalerContext()->getRec(); |
+ // Replace all special characters with '_'. |
+ for (size_t index = 0; index < fontName.size(); ++index) { |
+ if (!std::isalnum(fontName[index])) { |
+ fontName[index] = '_'; |
+ } |
+ } |
- SkString dumpName = SkStringPrintf("%s/%s_%3d/index_%d", |
- gGlyphCacheDumpName, fontName.c_str(), rec.fFontID, index); |
+ SkString dumpName = SkStringPrintf("%s/%s_%d/index_%d", |
+ gGlyphCacheDumpName, fontName.c_str(), rec.fFontID, index); |
dump->dumpNumericValue(dumpName.c_str(), "size", "bytes", cache.getMemoryUsed()); |
dump->dumpNumericValue(dumpName.c_str(), "glyph_count", "objects", cache.countCachedGlyphs()); |