| Index: runtime/vm/deopt_instructions.cc
|
| ===================================================================
|
| --- runtime/vm/deopt_instructions.cc (revision 31662)
|
| +++ runtime/vm/deopt_instructions.cc (working copy)
|
| @@ -301,7 +301,8 @@
|
| }
|
|
|
|
|
| -static void FillDeferredSlots(DeferredSlot** slot_list) {
|
| +static void FillDeferredSlots(DeoptContext* deopt_context,
|
| + DeferredSlot** slot_list) {
|
| DeferredSlot* slot = *slot_list;
|
| *slot_list = NULL;
|
|
|
| @@ -309,7 +310,7 @@
|
| DeferredSlot* current = slot;
|
| slot = slot->next();
|
|
|
| - current->Materialize();
|
| + current->Materialize(deopt_context);
|
|
|
| delete current;
|
| }
|
| @@ -325,8 +326,8 @@
|
| // objects can't be referencing other deferred objects because storing
|
| // an object into a field is always conservatively treated as escaping by
|
| // allocation sinking and load forwarding.
|
| - FillDeferredSlots(&deferred_boxes_);
|
| - FillDeferredSlots(&deferred_object_refs_);
|
| + FillDeferredSlots(this, &deferred_boxes_);
|
| + FillDeferredSlots(this, &deferred_object_refs_);
|
|
|
| // Compute total number of artificial arguments used during deoptimization.
|
| intptr_t deopt_arg_count = 0;
|
|
|