Index: src/api.cc |
diff --git a/src/api.cc b/src/api.cc |
index 7268eee4dce7d300a2c8ffcf8b7f40d176041076..2cda597298d8fcd3bfd5d178eeb9b30852b872d3 100644 |
--- a/src/api.cc |
+++ b/src/api.cc |
@@ -36,6 +36,7 @@ |
#include "src/debug/debug.h" |
#include "src/deoptimizer.h" |
#include "src/execution.h" |
+#include "src/frames-inl.h" |
#include "src/gdb-jit.h" |
#include "src/global-handles.h" |
#include "src/icu_util.h" |
@@ -7569,23 +7570,18 @@ bool Isolate::GetHeapCodeAndMetadataStatistics( |
void Isolate::GetStackSample(const RegisterState& state, void** frames, |
size_t frames_limit, SampleInfo* sample_info) { |
- i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this); |
#if defined(USE_SIMULATOR) |
- RegisterState regs; |
- regs.pc = state.pc; |
- regs.sp = state.sp; |
- regs.fp = state.fp; |
- if (!i::SimulatorHelper::FillRegisters(isolate, ®s)) { |
+ i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this); |
+ if (!i::SimulatorHelper::FillRegisters(isolate, |
+ const_cast<RegisterState*>(&state))) { |
alph
2016/06/30 21:18:08
please avoid using const_cast, as the caller is no
lpy
2016/06/30 22:51:29
Done.
|
sample_info->frames_count = 0; |
sample_info->vm_state = OTHER; |
sample_info->external_callback_entry = nullptr; |
return; |
} |
-#else |
- const RegisterState& regs = state; |
#endif |
- i::TickSample::GetStackSample(isolate, regs, i::TickSample::kSkipCEntryFrame, |
- frames, frames_limit, sample_info); |
+ TickSample::GetStackSample(this, state, TickSample::kSkipCEntryFrame, frames, |
+ frames_limit, sample_info); |
} |
size_t Isolate::NumberOfPhantomHandleResetsSinceLastCall() { |