| Index: base/debug/trace_event.h
|
| diff --git a/base/debug/trace_event.h b/base/debug/trace_event.h
|
| index b20cf94861badf53bea8674257f9c5556921abf7..2298b038b9bbbc49ab2798410d807e6f6a015419 100644
|
| --- a/base/debug/trace_event.h
|
| +++ b/base/debug/trace_event.h
|
| @@ -349,11 +349,11 @@
|
| // two different processes will not collide.
|
| #define TRACE_COUNTER_ID1(category, name, id, value) \
|
| INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_COUNTER, \
|
| - category, name, id, TRACE_EVENT_FLAG_HAS_ID, \
|
| + category, name, id, TRACE_EVENT_FLAG_NONE, \
|
| "value", static_cast<int>(value))
|
| #define TRACE_COPY_COUNTER_ID1(category, name, id, value) \
|
| INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_COUNTER, \
|
| - category, name, id, TRACE_EVENT_FLAG_COPY | TRACE_EVENT_FLAG_HAS_ID, \
|
| + category, name, id, TRACE_EVENT_FLAG_COPY, \
|
| "value", static_cast<int>(value))
|
|
|
| // Records the values of a multi-parted counter called "name" immediately.
|
| @@ -368,13 +368,13 @@
|
| #define TRACE_COUNTER_ID2(category, name, id, value1_name, value1_val, \
|
| value2_name, value2_val) \
|
| INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_COUNTER, \
|
| - category, name, id, TRACE_EVENT_FLAG_HAS_ID, \
|
| + category, name, id, TRACE_EVENT_FLAG_NONE, \
|
| value1_name, static_cast<int>(value1_val), \
|
| value2_name, static_cast<int>(value2_val))
|
| #define TRACE_COPY_COUNTER_ID2(category, name, id, value1_name, value1_val, \
|
| value2_name, value2_val) \
|
| INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_COUNTER, \
|
| - category, name, id, TRACE_EVENT_FLAG_COPY | TRACE_EVENT_FLAG_HAS_ID, \
|
| + category, name, id, TRACE_EVENT_FLAG_COPY, \
|
| value1_name, static_cast<int>(value1_val), \
|
| value2_name, static_cast<int>(value2_val))
|
|
|
| @@ -390,52 +390,52 @@
|
| // two different processes will not collide.
|
| #define TRACE_EVENT_START0(category, name, id) \
|
| INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_START, \
|
| - category, name, id, TRACE_EVENT_FLAG_HAS_ID)
|
| + category, name, id, TRACE_EVENT_FLAG_NONE)
|
| #define TRACE_EVENT_START1(category, name, id, arg1_name, arg1_val) \
|
| INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_START, \
|
| - category, name, id, TRACE_EVENT_FLAG_HAS_ID, arg1_name, arg1_val)
|
| + category, name, id, TRACE_EVENT_FLAG_NONE, arg1_name, arg1_val)
|
| #define TRACE_EVENT_START2(category, name, id, arg1_name, arg1_val, \
|
| arg2_name, arg2_val) \
|
| INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_START, \
|
| - category, name, id, TRACE_EVENT_FLAG_HAS_ID, \
|
| + category, name, id, TRACE_EVENT_FLAG_NONE, \
|
| arg1_name, arg1_val, arg2_name, arg2_val)
|
| #define TRACE_EVENT_COPY_START0(category, name, id) \
|
| INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_START, \
|
| - category, name, id, TRACE_EVENT_FLAG_HAS_ID | TRACE_EVENT_FLAG_COPY)
|
| + category, name, id, TRACE_EVENT_FLAG_COPY)
|
| #define TRACE_EVENT_COPY_START1(category, name, id, arg1_name, arg1_val) \
|
| INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_START, \
|
| - category, name, id, TRACE_EVENT_FLAG_HAS_ID | TRACE_EVENT_FLAG_COPY, \
|
| + category, name, id, TRACE_EVENT_FLAG_COPY, \
|
| arg1_name, arg1_val)
|
| #define TRACE_EVENT_COPY_START2(category, name, id, arg1_name, arg1_val, \
|
| arg2_name, arg2_val) \
|
| INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_START, \
|
| - category, name, id, TRACE_EVENT_FLAG_HAS_ID | TRACE_EVENT_FLAG_COPY, \
|
| + category, name, id, TRACE_EVENT_FLAG_COPY, \
|
| arg1_name, arg1_val, arg2_name, arg2_val)
|
|
|
| // Records a single FINISH event for "name" immediately. If the category
|
| // is not enabled, then this does nothing.
|
| #define TRACE_EVENT_FINISH0(category, name, id) \
|
| INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_FINISH, \
|
| - category, name, id, TRACE_EVENT_FLAG_HAS_ID)
|
| + category, name, id, TRACE_EVENT_FLAG_NONE)
|
| #define TRACE_EVENT_FINISH1(category, name, id, arg1_name, arg1_val) \
|
| INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_FINISH, \
|
| - category, name, id, TRACE_EVENT_FLAG_HAS_ID, arg1_name, arg1_val)
|
| + category, name, id, TRACE_EVENT_FLAG_NONE, arg1_name, arg1_val)
|
| #define TRACE_EVENT_FINISH2(category, name, id, arg1_name, arg1_val, \
|
| arg2_name, arg2_val) \
|
| INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_FINISH, \
|
| - category, name, id, TRACE_EVENT_FLAG_HAS_ID, \
|
| + category, name, id, TRACE_EVENT_FLAG_NONE, \
|
| arg1_name, arg1_val, arg2_name, arg2_val)
|
| #define TRACE_EVENT_COPY_FINISH0(category, name, id) \
|
| INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_FINISH, \
|
| - category, name, id, TRACE_EVENT_FLAG_HAS_ID | TRACE_EVENT_FLAG_COPY)
|
| + category, name, id, TRACE_EVENT_FLAG_COPY)
|
| #define TRACE_EVENT_COPY_FINISH1(category, name, id, arg1_name, arg1_val) \
|
| INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_FINISH, \
|
| - category, name, id, TRACE_EVENT_FLAG_HAS_ID | TRACE_EVENT_FLAG_COPY, \
|
| + category, name, id, TRACE_EVENT_FLAG_COPY, \
|
| arg1_name, arg1_val)
|
| #define TRACE_EVENT_COPY_FINISH2(category, name, id, arg1_name, arg1_val, \
|
| arg2_name, arg2_val) \
|
| INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_FINISH, \
|
| - category, name, id, TRACE_EVENT_FLAG_HAS_ID | TRACE_EVENT_FLAG_COPY, \
|
| + category, name, id, TRACE_EVENT_FLAG_COPY, \
|
| arg1_name, arg1_val, arg2_name, arg2_val)
|
|
|
|
|
| @@ -472,13 +472,6 @@
|
| #define TRACE_EVENT_API_ADD_TRACE_EVENT \
|
| base::debug::TraceLog::GetInstance()->AddTraceEvent
|
|
|
| -// Mangle pointer with a hash so that if it occurs on more than one process,
|
| -// it will not collide in the trace data. Pass the returned value to
|
| -// TRACE_EVENT_API_ADD_TRACE_EVENT as the id parameter.
|
| -// unsigned long long TRACE_EVENT_API_GET_ID_FROM_POINTER(void* pointer)
|
| -#define TRACE_EVENT_API_GET_ID_FROM_POINTER \
|
| - base::debug::TraceLog::GetInstance()->GetInterProcessID
|
| -
|
| ////////////////////////////////////////////////////////////////////////////////
|
|
|
| // Implementation detail: trace event macros create temporary variables
|
| @@ -554,9 +547,12 @@
|
| ...) \
|
| INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category); \
|
| if (*INTERNAL_TRACE_EVENT_UID(catstatic)) { \
|
| + unsigned char trace_event_flags = flags | TRACE_EVENT_FLAG_HAS_ID; \
|
| + trace_event_internal::TraceID trace_event_trace_id( \
|
| + id, &trace_event_flags); \
|
| trace_event_internal::AddTraceEvent( \
|
| phase, INTERNAL_TRACE_EVENT_UID(catstatic), \
|
| - name, trace_event_internal::TraceID(id).data(), flags, \
|
| + name, trace_event_trace_id.data(), trace_event_flags, \
|
| ##__VA_ARGS__); \
|
| }
|
|
|
| @@ -576,8 +572,9 @@
|
|
|
| // Flags for changing the behavior of TRACE_EVENT_API_ADD_TRACE_EVENT.
|
| #define TRACE_EVENT_FLAG_NONE (static_cast<unsigned char>(0))
|
| -#define TRACE_EVENT_FLAG_COPY (static_cast<unsigned char>(1<<0))
|
| -#define TRACE_EVENT_FLAG_HAS_ID (static_cast<unsigned char>(1<<1))
|
| +#define TRACE_EVENT_FLAG_COPY (static_cast<unsigned char>(1 << 0))
|
| +#define TRACE_EVENT_FLAG_HAS_ID (static_cast<unsigned char>(1 << 1))
|
| +#define TRACE_EVENT_FLAG_MANGLE_ID (static_cast<unsigned char>(1 << 2))
|
|
|
| // Type values for identifying types in the TraceValue union.
|
| #define TRACE_VALUE_TYPE_BOOL (static_cast<unsigned char>(1))
|
| @@ -602,20 +599,31 @@ const unsigned long long kNoEventId = 0;
|
| // same pointer is used on different processes.
|
| class TraceID {
|
| public:
|
| - explicit TraceID(void* rhs) :
|
| - data_(TRACE_EVENT_API_GET_ID_FROM_POINTER(rhs)) {}
|
| - explicit TraceID(unsigned long long rhs) : data_(rhs) {}
|
| - explicit TraceID(unsigned long rhs) : data_(rhs) {}
|
| - explicit TraceID(unsigned int rhs) : data_(rhs) {}
|
| - explicit TraceID(unsigned short rhs) : data_(rhs) {}
|
| - explicit TraceID(unsigned char rhs) : data_(rhs) {}
|
| - explicit TraceID(long long rhs) :
|
| - data_(static_cast<unsigned long long>(rhs)) {}
|
| - explicit TraceID(long rhs) : data_(static_cast<unsigned long long>(rhs)) {}
|
| - explicit TraceID(int rhs) : data_(static_cast<unsigned long long>(rhs)) {}
|
| - explicit TraceID(short rhs) : data_(static_cast<unsigned long long>(rhs)) {}
|
| - explicit TraceID(signed char rhs) :
|
| - data_(static_cast<unsigned long long>(rhs)) {}
|
| + explicit TraceID(const void* id, unsigned char* flags) :
|
| + data_(static_cast<unsigned long long>(
|
| + reinterpret_cast<unsigned long>(id))) {
|
| + *flags |= TRACE_EVENT_FLAG_MANGLE_ID;
|
| + }
|
| + explicit TraceID(unsigned long long id, unsigned char* flags) :
|
| + data_(id) { (void)flags; }
|
| + explicit TraceID(unsigned long id, unsigned char* flags) :
|
| + data_(id) { (void)flags; }
|
| + explicit TraceID(unsigned int id, unsigned char* flags) :
|
| + data_(id) { (void)flags; }
|
| + explicit TraceID(unsigned short id, unsigned char* flags) :
|
| + data_(id) { (void)flags; }
|
| + explicit TraceID(unsigned char id, unsigned char* flags) :
|
| + data_(id) { (void)flags; }
|
| + explicit TraceID(long long id, unsigned char* flags) :
|
| + data_(static_cast<unsigned long long>(id)) { (void)flags; }
|
| + explicit TraceID(long id, unsigned char* flags) :
|
| + data_(static_cast<unsigned long long>(id)) { (void)flags; }
|
| + explicit TraceID(int id, unsigned char* flags) :
|
| + data_(static_cast<unsigned long long>(id)) { (void)flags; }
|
| + explicit TraceID(short id, unsigned char* flags) :
|
| + data_(static_cast<unsigned long long>(id)) { (void)flags; }
|
| + explicit TraceID(signed char id, unsigned char* flags) :
|
| + data_(static_cast<unsigned long long>(id)) { (void)flags; }
|
|
|
| unsigned long long data() const { return data_; }
|
|
|
|
|