| Index: src/cpu-profiler.cc
 | 
| diff --git a/src/cpu-profiler.cc b/src/cpu-profiler.cc
 | 
| index 3d9dc6780b2aefac2f45ae619281ccbf5c036d3c..94677c10e260ca9d583962e6396b9390ed4b0c9a 100644
 | 
| --- a/src/cpu-profiler.cc
 | 
| +++ b/src/cpu-profiler.cc
 | 
| @@ -64,14 +64,15 @@ void ProfilerEventsProcessor::Enqueue(const CodeEventsContainer& event) {
 | 
|  
 | 
|  void ProfilerEventsProcessor::AddCurrentStack(Isolate* isolate) {
 | 
|    TickSampleEventRecord record(last_code_event_id_);
 | 
| -  TickSample* sample = &record.sample;
 | 
| -  sample->state = isolate->current_vm_state();
 | 
| -  sample->pc = reinterpret_cast<Address>(sample);  // Not NULL.
 | 
| -  for (StackTraceFrameIterator it(isolate);
 | 
| -       !it.done() && sample->frames_count < TickSample::kMaxFramesCount;
 | 
| -       it.Advance()) {
 | 
| -    sample->stack[sample->frames_count++] = it.frame()->pc();
 | 
| +  RegisterState regs;
 | 
| +  StackFrameIterator it(isolate);
 | 
| +  if (!it.done()) {
 | 
| +    StackFrame* frame = it.frame();
 | 
| +    regs.sp = frame->sp();
 | 
| +    regs.fp = frame->fp();
 | 
| +    regs.pc = frame->pc();
 | 
|    }
 | 
| +  record.sample.Init(isolate, regs);
 | 
|    ticks_from_vm_buffer_.Enqueue(record);
 | 
|  }
 | 
|  
 | 
| 
 |