Index: runtime/vm/deopt_instructions.cc |
=================================================================== |
--- runtime/vm/deopt_instructions.cc (revision 20298) |
+++ runtime/vm/deopt_instructions.cc (working copy) |
@@ -277,7 +277,9 @@ |
function ^= deopt_context->ObjectAt(object_table_index_); |
const Code& code = |
Code::Handle(deopt_context->isolate(), function.unoptimized_code()); |
+ ASSERT(!code.IsNull()); |
uword continue_at_pc = code.GetDeoptAfterPcAtDeoptId(deopt_id_); |
+ ASSERT(continue_at_pc != 0); |
intptr_t* to_addr = deopt_context->GetToFrameAddressAt(to_index); |
*to_addr = continue_at_pc; |
} |
@@ -332,7 +334,9 @@ |
function ^= deopt_context->ObjectAt(object_table_index_); |
const Code& code = |
Code::Handle(deopt_context->isolate(), function.unoptimized_code()); |
+ ASSERT(!code.IsNull()); |
uword continue_at_pc = code.GetDeoptBeforePcAtDeoptId(deopt_id_); |
+ ASSERT(continue_at_pc != 0); |
intptr_t* to_addr = deopt_context->GetToFrameAddressAt(to_index); |
*to_addr = continue_at_pc; |
@@ -585,7 +589,7 @@ |
// function occurring in the optimized frame. |
function.set_deoptimization_counter(function.deoptimization_counter() + 1); |
if (FLAG_trace_deoptimization) { |
- OS::PrintErr("Deoptimizing inlined %s (count %d)\n", |
+ OS::PrintErr("Deoptimizing %s (count %d)\n", |
function.ToFullyQualifiedCString(), |
function.deoptimization_counter()); |
} |
@@ -719,7 +723,10 @@ |
ASSERT(func != NULL); |
*func ^= object_table.At(ret_after_instr->object_table_index()); |
const Code& code = Code::Handle(func->unoptimized_code()); |
- return code.GetDeoptAfterPcAtDeoptId(ret_after_instr->deopt_id()); |
+ ASSERT(!code.IsNull()); |
+ uword res = code.GetDeoptAfterPcAtDeoptId(ret_after_instr->deopt_id()); |
+ ASSERT(res != 0); |
+ return res; |
} |