| Index: runtime/vm/deopt_instructions.cc
|
| diff --git a/runtime/vm/deopt_instructions.cc b/runtime/vm/deopt_instructions.cc
|
| index ecef27927e76447d5b42d12e0f7c89b62b6dc1cb..614b9765b8a3e62961d2fc129d740a4f491ce702 100644
|
| --- a/runtime/vm/deopt_instructions.cc
|
| +++ b/runtime/vm/deopt_instructions.cc
|
| @@ -660,12 +660,16 @@ class DeoptPcMarkerInstr : public DeoptInstr {
|
| Function& function = Function::Handle(deopt_context->zone());
|
| function ^= deopt_context->ObjectAt(object_table_index_);
|
| if (function.IsNull()) {
|
| + // There are no deoptimization stubs on DBC.
|
| +#if !defined(TARGET_ARCH_DBC)
|
| *reinterpret_cast<RawObject**>(dest_addr) = deopt_context->is_lazy_deopt()
|
| ? StubCode::DeoptimizeLazy_entry()->code()
|
| : StubCode::Deoptimize_entry()->code();
|
| +#endif
|
| return;
|
| }
|
|
|
| +#if !defined(TARGET_ARCH_DBC)
|
| // We don't always have the Code object for the frame's corresponding
|
| // unoptimized code as it may have been collected. Use a stub as the pc
|
| // marker until we can recreate that Code object during deferred
|
| @@ -673,6 +677,7 @@ class DeoptPcMarkerInstr : public DeoptInstr {
|
| // a pc marker.
|
| *reinterpret_cast<RawObject**>(dest_addr) =
|
| StubCode::FrameAwaitingMaterialization_entry()->code();
|
| +#endif
|
| deopt_context->DeferPcMarkerMaterialization(object_table_index_, dest_addr);
|
| }
|
|
|
|
|