Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3253)

Unified Diff: base/trace_event/heap_profiler_type_name_deduplicator.cc

Issue 2698003002: Heap Profiler: Avoid splitting PartitionAlloc / BlinkGC type names by comma (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/trace_event/heap_profiler_type_name_deduplicator.cc
diff --git a/base/trace_event/heap_profiler_type_name_deduplicator.cc b/base/trace_event/heap_profiler_type_name_deduplicator.cc
index 76cf69777f569f849298f40421fed31599516b5a..5cc4c609549df9b75c3304400a366656fe4d1bf3 100644
--- a/base/trace_event/heap_profiler_type_name_deduplicator.cc
+++ b/base/trace_event/heap_profiler_type_name_deduplicator.cc
@@ -26,11 +26,19 @@ namespace {
// "disabled-by-default" prefix if present.
StringPiece ExtractCategoryFromTypeName(const char* type_name) {
StringPiece result(type_name);
- size_t last_seperator = result.find_last_of("\\/");
Primiano Tucci (use gerrit) 2017/05/09 09:04:12 LOL, how much damage did a typo + code/paste :)
+ size_t last_separator = result.find_last_of("\\/");
- // If |type_name| was a not a file path, the seperator will not be found, so
+ // If |type_name| was a not a file path, the separator will not be found, so
// the whole type name is returned.
- if (last_seperator == StringPiece::npos) {
+ if (last_separator == StringPiece::npos) {
+ // |type_name| is C++ typename if its reporting allocator is
+ // partition_alloc or blink_gc. In this case, we should not split
+ // |type_name| by ',', because of function types and template types.
+ // e.g. WTF::HashMap<WTF::AtomicString, WTF::AtomicString>,
+ // void (*)(void*, void*), and so on. So if |type_name| contains
+ if (result.find_last_of(")>") != StringPiece::npos)
+ return result;
+
// Use the first the category name if it has ",".
size_t first_comma_position = result.find(',');
if (first_comma_position != StringPiece::npos)
@@ -41,7 +49,7 @@ StringPiece ExtractCategoryFromTypeName(const char* type_name) {
}
// Remove the file name from the path.
- result.remove_suffix(result.length() - last_seperator);
+ result.remove_suffix(result.length() - last_separator);
// Remove the parent directory references.
const char kParentDirectory[] = "..";
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698