Index: base/trace_event/memory_allocator_dump_guid.cc |
diff --git a/base/trace_event/memory_allocator_dump_guid.cc b/base/trace_event/memory_allocator_dump_guid.cc |
index a4ea50d416a0d5bd784e7c74501f77ad45d7b49f..2b5c1bba27d07deeb414714e71a997a29689537c 100644 |
--- a/base/trace_event/memory_allocator_dump_guid.cc |
+++ b/base/trace_event/memory_allocator_dump_guid.cc |
@@ -6,9 +6,25 @@ |
#include "base/format_macros.h" |
#include "base/hash.h" |
+#include "base/strings/string_number_conversions.h" |
#include "base/strings/stringprintf.h" |
namespace base { |
+namespace { |
+int unique_child_process_id = -1; |
+ |
+uint64 InsertChildIdAndHash(std::string guid_str) { |
+ const char kReplaceChildIdStr[] = "$$"; |
picksi
2015/06/16 16:18:37
Random thought: Are we ever going to want to add o
ssid
2015/06/19 10:18:14
primiano@ WDYT?
|
+ size_t pos = guid_str.find(kReplaceChildIdStr); |
picksi
2015/06/16 16:18:37
Does this code need to work fast? If so we could a
ssid
2015/06/19 10:18:14
hm, The string length is going to be small, so i d
|
+ if (pos != std::string::npos) { |
+ DCHECK_NE(unique_child_process_id, -1); |
+ guid_str.replace(pos, sizeof(kReplaceChildIdStr) - 1, |
+ IntToString(unique_child_process_id)); |
+ } |
+ return Hash(guid_str); |
+} |
+} // namespace |
+ |
namespace trace_event { |
MemoryAllocatorDumpGuid::MemoryAllocatorDumpGuid(uint64 guid) : guid_(guid) { |
@@ -19,7 +35,12 @@ MemoryAllocatorDumpGuid::MemoryAllocatorDumpGuid() |
} |
MemoryAllocatorDumpGuid::MemoryAllocatorDumpGuid(const std::string& guid_str) |
- : MemoryAllocatorDumpGuid(Hash(guid_str)) { |
+ : MemoryAllocatorDumpGuid(InsertChildIdAndHash(guid_str)) { |
+} |
+ |
+// static |
+void MemoryAllocatorDumpGuid::SetUniqueChildProcessId(int child_process_id) { |
+ unique_child_process_id = child_process_id; |
} |
std::string MemoryAllocatorDumpGuid::ToString() const { |