Chromium Code Reviews| Index: base/trace_event/trace_event.h |
| diff --git a/base/trace_event/trace_event.h b/base/trace_event/trace_event.h |
| index 250c161d46ce018ff316a0ee8ac8c44f0ba79e92..53395dc670c76adf51108c5ea9c6f44abc2443fe 100644 |
| --- a/base/trace_event/trace_event.h |
| +++ b/base/trace_event/trace_event.h |
| @@ -78,6 +78,11 @@ |
| base::trace_event::TraceLog::ENABLED_FOR_EVENT_CALLBACK | \ |
| base::trace_event::TraceLog::ENABLED_FOR_ETW_EXPORT)) |
| +#define INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_FILTERING_MODE( \ |
| + category_group_enabled) \ |
| + UNLIKELY(category_group_enabled& \ |
| + base::trace_event::TraceLog::ENABLED_FOR_FILTERING) |
|
shatch
2016/08/15 21:25:47
nit: indentation seems off here
oystein (OOO til 10th of July)
2016/08/16 22:17:52
Yeah it looks weird, but I think it's actually cor
|
| + |
| //////////////////////////////////////////////////////////////////////////////// |
| // Implementation specific tracing API definitions. |
| @@ -185,6 +190,14 @@ |
| #define TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION \ |
| base::trace_event::TraceLog::GetInstance()->UpdateTraceEventDuration |
| +// Call EndEvent on the filter for a filtered event. |
| +// void TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION( |
| +// const unsigned char* category_group_enabled, |
| +// const char* name, |
| +// base::trace_event::TraceEventHandle id) |
| +#define TRACE_EVENT_API_END_FILTERED_EVENT \ |
| + base::trace_event::TraceLog::GetInstance()->EndFilteredEvent |
| + |
| // Adds a metadata event to the trace log. The |AppendValueAsTraceFormat| method |
| // on the convertable value will be called at flush time. |
| // TRACE_EVENT_API_ADD_METADATA_EVENT( |
| @@ -999,9 +1012,15 @@ class TRACE_EVENT_API_CLASS_EXPORT ScopedTracer { |
| ScopedTracer() : p_data_(NULL) {} |
| ~ScopedTracer() { |
| - if (p_data_ && *data_.category_group_enabled) |
| + if (p_data_ && *data_.category_group_enabled) { |
| TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION( |
| data_.category_group_enabled, data_.name, data_.event_handle); |
| + if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_FILTERING_MODE( |
| + *data_.category_group_enabled)) { |
| + TRACE_EVENT_API_END_FILTERED_EVENT(data_.category_group_enabled, |
| + data_.name, data_.event_handle); |
| + } |
| + } |
| } |
| void Initialize(const unsigned char* category_group_enabled, |