Index: src/profiler/profile-generator.cc |
diff --git a/src/profiler/profile-generator.cc b/src/profiler/profile-generator.cc |
index a4da7cae7f320400aa366a5084c497674ee45e35..edb3b9feb7fa3b8c7e33d712ed0045f27f92b343 100644 |
--- a/src/profiler/profile-generator.cc |
+++ b/src/profiler/profile-generator.cc |
@@ -155,11 +155,11 @@ const std::vector<CodeEntry*>* CodeEntry::GetInlineStack(int pc_offset) const { |
} |
void CodeEntry::AddDeoptInlinedFrames( |
- int deopt_id, std::vector<DeoptInlinedFrame>& inlined_frames) { |
+ int deopt_id, std::vector<CpuProfileDeoptFrame>& inlined_frames) { |
// It's better to use std::move to place the vector into the map, |
// but it's not supported by the current stdlibc++ on MacOS. |
deopt_inlined_frames_ |
- .insert(std::make_pair(deopt_id, std::vector<DeoptInlinedFrame>())) |
+ .insert(std::make_pair(deopt_id, std::vector<CpuProfileDeoptFrame>())) |
alph
2016/11/17 00:09:43
I believe it's now ok to use std::move
Could you p
|
.first->second.swap(inlined_frames); |
} |
@@ -181,19 +181,10 @@ CpuProfileDeoptInfo CodeEntry::GetDeoptInfo() { |
CpuProfileDeoptInfo info; |
info.deopt_reason = deopt_reason_; |
DCHECK_NE(kNoDeoptimizationId, deopt_id_); |
- size_t position = static_cast<size_t>(deopt_position_.ScriptOffset()); |
if (deopt_inlined_frames_.find(deopt_id_) == deopt_inlined_frames_.end()) { |
- info.stack.push_back(CpuProfileDeoptFrame({script_id_, position})); |
+ info.stack.push_back(CpuProfileDeoptFrame({script_id_, position()})); |
} else { |
- // Copy stack of inlined frames where the deopt happened. |
- std::vector<DeoptInlinedFrame>& frames = deopt_inlined_frames_[deopt_id_]; |
- bool first = true; |
- for (DeoptInlinedFrame& inlined_frame : base::Reversed(frames)) { |
- info.stack.push_back( |
- CpuProfileDeoptFrame({inlined_frame.script_id, |
- first ? position : inlined_frame.position})); |
- first = false; // Done with innermost frame. |
- } |
+ info.stack = deopt_inlined_frames_[deopt_id_]; |
} |
return info; |
} |