| Index: base/trace_event/trace_log.cc
|
| diff --git a/base/trace_event/trace_log.cc b/base/trace_event/trace_log.cc
|
| index b7cc599187de89214a9b9d97d2a30c34b586b010..067b2499e97de8e970c740b9ac048a859fe5ebd5 100644
|
| --- a/base/trace_event/trace_log.cc
|
| +++ b/base/trace_event/trace_log.cc
|
| @@ -1323,13 +1323,10 @@ TraceEventHandle TraceLog::AddTraceEventWithThreadIdAndTimestamp(
|
| // Blink and skia crbug.com/598426.
|
| if (!(flags & TRACE_EVENT_FLAG_COPY)) {
|
| if (AllocationContextTracker::capture_enabled()) {
|
| - if (phase == TRACE_EVENT_PHASE_BEGIN ||
|
| - phase == TRACE_EVENT_PHASE_COMPLETE) {
|
| + if (phase == TRACE_EVENT_PHASE_BEGIN) {
|
| AllocationContextTracker::GetInstanceForCurrentThread()
|
| ->PushPseudoStackFrame(name);
|
| } else if (phase == TRACE_EVENT_PHASE_END) {
|
| - // The pop for |TRACE_EVENT_PHASE_COMPLETE| events
|
| - // is in |TraceLog::UpdateTraceEventDuration|.
|
| AllocationContextTracker::GetInstanceForCurrentThread()
|
| ->PopPseudoStackFrame(name);
|
| }
|
| @@ -1453,12 +1450,6 @@ void TraceLog::UpdateTraceEventDuration(
|
| console_message =
|
| EventToConsoleMessage(TRACE_EVENT_PHASE_END, now, trace_event);
|
| }
|
| -
|
| - if (base::trace_event::AllocationContextTracker::capture_enabled()) {
|
| - // The corresponding push is in |AddTraceEventWithThreadIdAndTimestamp|.
|
| - base::trace_event::AllocationContextTracker::GetInstanceForCurrentThread()
|
| - ->PopPseudoStackFrame(name);
|
| - }
|
| }
|
|
|
| if (console_message.size())
|
| @@ -1724,30 +1715,41 @@ ScopedTraceBinaryEfficient::ScopedTraceBinaryEfficient(
|
| category_group, atomic, category_group_enabled_);
|
| name_ = name;
|
| if (*category_group_enabled_ &
|
| - base::trace_event::TraceLog::ENABLED_FOR_NON_PROFILING_MODE) {
|
| - event_handle_ =
|
| - TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP(
|
| - TRACE_EVENT_PHASE_COMPLETE,
|
| - category_group_enabled_,
|
| - name,
|
| - trace_event_internal::kGlobalScope, // scope
|
| - trace_event_internal::kNoId, // id
|
| - static_cast<int>(base::PlatformThread::CurrentId()), // thread_id
|
| - base::TimeTicks::Now(),
|
| - trace_event_internal::kZeroNumArgs,
|
| - nullptr,
|
| - nullptr,
|
| - nullptr,
|
| - nullptr,
|
| - TRACE_EVENT_FLAG_NONE);
|
| + (base::trace_event::TraceLog::ENABLED_FOR_HEAP_PROFILING |
|
| + base::trace_event::TraceLog::ENABLED_FOR_NON_PROFILING_MODE)) {
|
| + if (*category_group_enabled_ &
|
| + base::trace_event::TraceLog::ENABLED_FOR_HEAP_PROFILING) {
|
| + base::trace_event::AllocationContextTracker::GetInstanceForCurrentThread()
|
| + ->PushPseudoStackFrame(name);
|
| + }
|
| + if (*category_group_enabled_ &
|
| + base::trace_event::TraceLog::ENABLED_FOR_NON_PROFILING_MODE) {
|
| + event_handle_ =
|
| + TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP(
|
| + TRACE_EVENT_PHASE_COMPLETE, category_group_enabled_, name,
|
| + trace_event_internal::kGlobalScope, // scope
|
| + trace_event_internal::kNoId, // id
|
| + static_cast<int>(base::PlatformThread::CurrentId()), // thread_id
|
| + base::TimeTicks::Now(), trace_event_internal::kZeroNumArgs,
|
| + nullptr, nullptr, nullptr, nullptr, TRACE_EVENT_FLAG_NONE);
|
| + }
|
| }
|
| }
|
|
|
| ScopedTraceBinaryEfficient::~ScopedTraceBinaryEfficient() {
|
| if (*category_group_enabled_ &
|
| - base::trace_event::TraceLog::ENABLED_FOR_NON_PROFILING_MODE) {
|
| - TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION(category_group_enabled_, name_,
|
| - event_handle_);
|
| + (base::trace_event::TraceLog::ENABLED_FOR_HEAP_PROFILING |
|
| + base::trace_event::TraceLog::ENABLED_FOR_NON_PROFILING_MODE)) {
|
| + if (*category_group_enabled_ &
|
| + base::trace_event::TraceLog::ENABLED_FOR_HEAP_PROFILING) {
|
| + base::trace_event::AllocationContextTracker::GetInstanceForCurrentThread()
|
| + ->PopPseudoStackFrame(name_);
|
| + }
|
| + if (*category_group_enabled_ &
|
| + base::trace_event::TraceLog::ENABLED_FOR_NON_PROFILING_MODE) {
|
| + TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION(category_group_enabled_,
|
| + name_, event_handle_);
|
| + }
|
| }
|
| }
|
|
|
|
|