| Index: runtime/vm/deopt_instructions.cc
|
| ===================================================================
|
| --- runtime/vm/deopt_instructions.cc (revision 45386)
|
| +++ runtime/vm/deopt_instructions.cc (working copy)
|
| @@ -783,10 +783,16 @@
|
| // from the simulator.
|
| ASSERT(Isolate::IsDeoptAfter(ret_address_instr->deopt_id()));
|
| ASSERT(!object_table.IsNull());
|
| - Function& function = Function::Handle();
|
| + Thread* thread = Thread::Current();
|
| + Zone* zone = thread->zone();
|
| + Function& function = Function::Handle(zone);
|
| function ^= object_table.At(ret_address_instr->object_table_index());
|
| ASSERT(code != NULL);
|
| - Compiler::EnsureUnoptimizedCode(Thread::Current(), function);
|
| + const Error& error = Error::Handle(zone,
|
| + Compiler::EnsureUnoptimizedCode(thread, function));
|
| + if (!error.IsNull()) {
|
| + Exceptions::PropagateError(error);
|
| + }
|
| *code ^= function.unoptimized_code();
|
| ASSERT(!code->IsNull());
|
| uword res = code->GetPcForDeoptId(ret_address_instr->deopt_id(),
|
|
|