Chromium Code Reviews| Index: base/trace_event/heap_profiler_stack_frame_deduplicator.cc |
| diff --git a/base/trace_event/heap_profiler_stack_frame_deduplicator.cc b/base/trace_event/heap_profiler_stack_frame_deduplicator.cc |
| index 12121937530ff30503e6c6dd0a5f65cc38f4bedc..22957804f137b38b44f1610e6621c698702bbbd3 100644 |
| --- a/base/trace_event/heap_profiler_stack_frame_deduplicator.cc |
| +++ b/base/trace_event/heap_profiler_stack_frame_deduplicator.cc |
| @@ -31,7 +31,7 @@ int StackFrameDeduplicator::Insert(const StackFrame* beginFrame, |
| std::map<StackFrame, int>* nodes = &roots_; |
| // Loop through the frames, early out when a frame is null. |
| - for (const StackFrame* it = beginFrame; it != endFrame && *it; it++) { |
| + for (const StackFrame* it = beginFrame; it != endFrame; it++) { |
| StackFrame frame = *it; |
| auto node = nodes->find(frame); |
| @@ -78,7 +78,19 @@ void StackFrameDeduplicator::AppendAsTraceFormat(std::string* out) const { |
| out->append(stringify_buffer); |
| std::unique_ptr<TracedValue> frame_node_value(new TracedValue); |
| - frame_node_value->SetString("name", frame_node->frame); |
| + const StackFrame& frame = frame_node->frame; |
| + switch (frame.type) { |
| + case StackFrame::Type::TRACE_EVENT_NAME: |
| + frame_node_value->SetString( |
| + "name", static_cast<const char*>(frame.value)); |
| + break; |
| + case StackFrame::Type::THREAD_NAME: |
| + SStringPrintf(&stringify_buffer, |
| + "[Thread: %s]", |
| + static_cast<const char*>(frame.value)); |
| + frame_node_value->SetString("name", stringify_buffer); |
| + break; |
|
Primiano Tucci (use gerrit)
2016/04/19 19:45:06
maybe add a default: NOTREACHED() (not 100% sure t
Dmitry Skiba
2016/04/19 22:14:14
Actually, since we're switching on enum (enum clas
Primiano Tucci (use gerrit)
2016/04/20 13:17:59
Sg, leave it as it is then.
|
| + } |
| if (frame_node->parent_frame_index >= 0) { |
| SStringPrintf(&stringify_buffer, "%d", frame_node->parent_frame_index); |
| frame_node_value->SetString("parent", stringify_buffer); |