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) |
+ |
//////////////////////////////////////////////////////////////////////////////// |
// 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, |