| Index: runtime/vm/deferred_objects.cc
|
| diff --git a/runtime/vm/deferred_objects.cc b/runtime/vm/deferred_objects.cc
|
| index 7a0b08e975e51c610d0695c14fdf2e6b0db351cd..a647af1768a356b2db103551cd94df8463f4cd59 100644
|
| --- a/runtime/vm/deferred_objects.cc
|
| +++ b/runtime/vm/deferred_objects.cc
|
| @@ -161,8 +161,11 @@ void DeferredPcMarker::Materialize(DeoptContext* deopt_context) {
|
| uword* dest_addr = reinterpret_cast<uword*>(slot());
|
| Function& function = Function::Handle(zone);
|
| function ^= deopt_context->ObjectAt(index_);
|
| - // Null case is already handled in DeoptPcMarkerInstr::Execute.
|
| - ASSERT(!function.IsNull());
|
| + if (function.IsNull()) {
|
| + // Callee's PC marker is not used (pc of Deoptimize stub). Set to 0.
|
| + *dest_addr = 0;
|
| + return;
|
| + }
|
| const Error& error = Error::Handle(zone,
|
| Compiler::EnsureUnoptimizedCode(thread, function));
|
| if (!error.IsNull()) {
|
|
|