| Index: runtime/vm/code_generator.cc
 | 
| diff --git a/runtime/vm/code_generator.cc b/runtime/vm/code_generator.cc
 | 
| index f8e7c377ae0c60b0eaefc59960cbf9c545ddb222..b182fb948ccc1c76187049a02ee3fc2908f81487 100644
 | 
| --- a/runtime/vm/code_generator.cc
 | 
| +++ b/runtime/vm/code_generator.cc
 | 
| @@ -1612,7 +1612,7 @@ DEFINE_LEAF_RUNTIME_ENTRY(intptr_t, DeoptimizeCopyFrame,
 | 
|    const intptr_t num_args =
 | 
|        function.HasOptionalParameters() ? 0 : function.num_fixed_parameters();
 | 
|    intptr_t unoptimized_stack_size =
 | 
| -      + deopt_info.Length() - num_args
 | 
| +      + deopt_info.TranslationLength() - num_args
 | 
|        - 2;  // Subtract caller FP and PC.
 | 
|    return unoptimized_stack_size * kWordSize;
 | 
|  }
 | 
| @@ -1623,12 +1623,11 @@ END_LEAF_RUNTIME_ENTRY
 | 
|  static intptr_t DeoptimizeWithDeoptInfo(const Code& code,
 | 
|                                          const DeoptInfo& deopt_info,
 | 
|                                          const StackFrame& caller_frame) {
 | 
| -  const intptr_t len = deopt_info.Length();
 | 
| +  const intptr_t len = deopt_info.TranslationLength();
 | 
|    GrowableArray<DeoptInstr*> deopt_instructions(len);
 | 
| -  for (intptr_t i = 0; i < len; i++) {
 | 
| -    deopt_instructions.Add(DeoptInstr::Create(deopt_info.Instruction(i),
 | 
| -                                              deopt_info.FromIndex(i)));
 | 
| -  }
 | 
| +  const Array& deopt_table = Array::Handle(code.deopt_info_array());
 | 
| +  ASSERT(!deopt_table.IsNull());
 | 
| +  deopt_info.ToInstructions(deopt_table, &deopt_instructions);
 | 
|  
 | 
|    intptr_t* start = reinterpret_cast<intptr_t*>(caller_frame.sp() - kWordSize);
 | 
|    const Function& function = Function::Handle(code.function());
 | 
| 
 |