| Index: base/trace_event/trace_event.h
|
| diff --git a/base/trace_event/trace_event.h b/base/trace_event/trace_event.h
|
| index 4de64837161fded5fd176d1dc5136006d8521a9e..2dd5e93416ba22659e1d5a42c898f0e12d1f937e 100644
|
| --- a/base/trace_event/trace_event.h
|
| +++ b/base/trace_event/trace_event.h
|
| @@ -376,29 +376,20 @@ TRACE_EVENT_API_CLASS_EXPORT extern \
|
| } \
|
| } while (0)
|
|
|
| -// This macro ignores whether the bind_id is local, global, or mangled.
|
| -#define INTERNAL_TRACE_EVENT_ADD_BIND_IDS(category_group, name, id, bind_id, \
|
| - ...) \
|
| +// The linked ID will not be mangled.
|
| +#define INTERNAL_TRACE_EVENT_ADD_LINK_IDS(category_group, name, id1, id2) \
|
| do { \
|
| INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category_group); \
|
| if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \
|
| - trace_event_internal::TraceID source_id((id)); \
|
| + trace_event_internal::TraceID source_id((id1)); \
|
| unsigned int source_flags = source_id.id_flags(); \
|
| - trace_event_internal::TraceID target_id((bind_id)); \
|
| - if (target_id.scope() == trace_event_internal::kGlobalScope) { \
|
| - trace_event_internal::AddTraceEvent( \
|
| - TRACE_EVENT_PHASE_BIND_IDS, \
|
| - INTERNAL_TRACE_EVENT_UID(category_group_enabled), \
|
| - name, source_id.scope(), source_id.raw_id(), \
|
| - source_flags, target_id.raw_id(), ##__VA_ARGS__); \
|
| - } else { \
|
| - trace_event_internal::AddTraceEvent( \
|
| - TRACE_EVENT_PHASE_BIND_IDS, \
|
| - INTERNAL_TRACE_EVENT_UID(category_group_enabled), \
|
| - name, source_id.scope(), source_id.raw_id(), \
|
| - source_flags, target_id.raw_id(), \
|
| - "bind_scope", target_id.scope(), ##__VA_ARGS__); \
|
| - } \
|
| + trace_event_internal::TraceID target_id((id2)); \
|
| + trace_event_internal::AddTraceEvent( \
|
| + TRACE_EVENT_PHASE_LINK_IDS, \
|
| + INTERNAL_TRACE_EVENT_UID(category_group_enabled), \
|
| + name, source_id.scope(), source_id.raw_id(), source_flags, \
|
| + trace_event_internal::kNoId, \
|
| + "linked_id", target_id.AsConvertableToTraceFormat()); \
|
| } \
|
| } while (0)
|
|
|
| @@ -456,7 +447,7 @@ const unsigned long long kNoId = 0;
|
| // TraceID encapsulates an ID that can either be an integer or pointer. Pointers
|
| // are by default mangled with the Process ID so that they are unlikely to
|
| // collide when the same pointer is used on different processes.
|
| -class TraceID {
|
| +class BASE_EXPORT TraceID {
|
| public:
|
| // Can be combined with WithScope.
|
| class LocalId {
|
| @@ -582,6 +573,9 @@ class TraceID {
|
| const char* scope() const { return scope_; }
|
| unsigned int id_flags() const { return id_flags_; }
|
|
|
| + std::unique_ptr<base::trace_event::ConvertableToTraceFormat>
|
| + AsConvertableToTraceFormat() const;
|
| +
|
| private:
|
| const char* scope_ = nullptr;
|
| unsigned long long raw_id_;
|
|
|