Index: src/core/SkResourceCache.cpp |
diff --git a/src/core/SkResourceCache.cpp b/src/core/SkResourceCache.cpp |
index 46229fa5bdd987a77a05dff9e8b1964c345c57f9..5099c6a75b7023f5617a562c94bb95bba1725603 100644 |
--- a/src/core/SkResourceCache.cpp |
+++ b/src/core/SkResourceCache.cpp |
@@ -675,16 +675,21 @@ void SkResourceCache::TestDumpMemoryStatistics() { |
static void sk_trace_dump_visitor(const SkResourceCache::Rec& rec, void* context) { |
SkTraceMemoryDump* dump = static_cast<SkTraceMemoryDump*>(context); |
- SkString dump_name = SkStringPrintf("skia/sk_resource_cache/%s_%p", rec.getCategory(), &rec); |
+ SkString dumpName = SkStringPrintf("skia/sk_resource_cache/%s_%p", rec.getCategory(), &rec); |
SkDiscardableMemory* discardable = rec.diagnostic_only_getDiscardable(); |
if (discardable) { |
- dump->setDiscardableMemoryBacking(dump_name.c_str(), *discardable); |
+ dump->setDiscardableMemoryBacking(dumpName.c_str(), *discardable); |
} else { |
- dump->dumpNumericValue(dump_name.c_str(), "size", "bytes", rec.bytesUsed()); |
- dump->setMemoryBacking(dump_name.c_str(), "malloc", nullptr); |
+ dump->dumpNumericValue(dumpName.c_str(), "size", "bytes", rec.bytesUsed()); |
+ dump->setMemoryBacking(dumpName.c_str(), "malloc", nullptr); |
} |
} |
void SkResourceCache::DumpMemoryStatistics(SkTraceMemoryDump* dump) { |
- VisitAll(sk_trace_dump_visitor, dump); |
+ // Since resource could be backed by malloc or discardable, the cache always dumps detailed |
+ // stats to be accurate. |
+ if (dump->getRequestedDetails() | SkTraceMemoryDump::kMemoryTotals | |
+ SkTraceMemoryDump::kDiscardableDetails | SkTraceMemoryDump::kMallocDetails) { |
Primiano Tucci (use gerrit)
2015/09/11 17:39:53
This flag check seems wrong. I think you meant her
ssid
2015/09/21 14:24:14
Fixed this to &
|
+ VisitAll(sk_trace_dump_visitor, dump); |
+ } |
} |