Index: base/trace_event/trace_log.cc |
diff --git a/base/trace_event/trace_log.cc b/base/trace_event/trace_log.cc |
index 87e48fcafd219d8f825c7cb699e256ae783fb5cd..4e8bc3252516b6bf291e78a71ecb8b51a97aaf12 100644 |
--- a/base/trace_event/trace_log.cc |
+++ b/base/trace_event/trace_log.cc |
@@ -1381,17 +1381,27 @@ void TraceLog::UpdateTraceEventDuration( |
if (!category_group_enabled_local) |
return; |
+ UpdateTraceEventDurationExplicit(category_group_enabled, name, handle, |
+ OffsetNow(), ThreadNow()); |
+} |
+ |
+void TraceLog::UpdateTraceEventDurationExplicit( |
+ const unsigned char* category_group_enabled, |
+ const char* name, |
+ TraceEventHandle handle, |
+ const TimeTicks& now, |
+ const ThreadTicks& thread_now) { |
+ char category_group_enabled_local = *category_group_enabled; |
+ if (!category_group_enabled_local) |
+ return; |
+ |
// Avoid re-entrance of AddTraceEvent. This may happen in GPU process when |
// ECHO_TO_CONSOLE is enabled: AddTraceEvent -> LOG(ERROR) -> |
// GpuProcessLogMessageHandler -> PostPendingTask -> TRACE_EVENT ... |
if (thread_is_in_trace_event_.Get()) |
return; |
- |
AutoThreadLocalBoolean thread_is_in_trace_event(&thread_is_in_trace_event_); |
- ThreadTicks thread_now = ThreadNow(); |
- TimeTicks now = OffsetNow(); |
- |
#if defined(OS_WIN) |
// Generate an ETW event that marks the end of a complete event. |
if (category_group_enabled_local & TraceCategory::ENABLED_FOR_ETW_EXPORT) |