| Index: runtime/vm/deopt_instructions.cc
|
| diff --git a/runtime/vm/deopt_instructions.cc b/runtime/vm/deopt_instructions.cc
|
| index d6e2568a9856fe51b78a38b57cc1319986d4f4ac..2632261a0fb63083396aeadc3cf63592c8aff99e 100644
|
| --- a/runtime/vm/deopt_instructions.cc
|
| +++ b/runtime/vm/deopt_instructions.cc
|
| @@ -651,7 +651,13 @@ class DeoptPcMarkerInstr : public DeoptInstr {
|
| }
|
|
|
| void Execute(DeoptContext* deopt_context, intptr_t* dest_addr) {
|
| - *dest_addr = Smi::RawValue(0);
|
| + Function& function = Function::Handle(deopt_context->zone());
|
| + function ^= deopt_context->ObjectAt(object_table_index_);
|
| + if (function.IsNull()) {
|
| + // Callee's PC marker is not used (pc of Deoptimize stub). Set to 0.
|
| + *dest_addr = Smi::RawValue(0);
|
| + return;
|
| + }
|
| deopt_context->DeferPcMarkerMaterialization(
|
| object_table_index_, dest_addr);
|
| }
|
|
|