| Index: runtime/vm/stack_frame.cc
|
| diff --git a/runtime/vm/stack_frame.cc b/runtime/vm/stack_frame.cc
|
| index fb3d8d858cc0358169d7f1746ad3bcff87891e0d..4eb3da7e0d6b94b8b256e9f66d641093e2f3fd6a 100644
|
| --- a/runtime/vm/stack_frame.cc
|
| +++ b/runtime/vm/stack_frame.cc
|
| @@ -112,19 +112,15 @@ void StackFrame::VisitObjectPointers(ObjectPointerVisitor* visitor) {
|
| // visit frame slots which are marked as having objects.
|
| //
|
| // The layout of the frame is (lower addresses to the right):
|
| - // | spill slots | outgoing arguments | saved registers |
|
| - // |XXXXXXXXXXXXX|--------------------|XXXXXXXXXXXXXXXXX|
|
| + // | spill slots | outgoing arguments | saved registers | slow-path args |
|
| + // |XXXXXXXXXXXXX|--------------------|XXXXXXXXXXXXXXXXX|XXXXXXXXXXXXXXXX|
|
| //
|
| // The spill slots and any saved registers are described in the stack
|
| // map. The outgoing arguments are assumed to be tagged; the number
|
| // of outgoing arguments is not explicitly tracked.
|
| - //
|
| - // TODO(kmillikin): This does not handle slow path calls with
|
| - // arguments, where the arguments are pushed after the live registers.
|
| - // Enable such calls.
|
| intptr_t length = map.Length();
|
| // Spill slots are at the 'bottom' of the frame.
|
| - intptr_t spill_slot_count = length - map.RegisterBitCount();
|
| + intptr_t spill_slot_count = length - map.SlowPathBitCount();
|
| for (intptr_t bit = 0; bit < spill_slot_count; ++bit) {
|
| if (map.IsObject(bit)) {
|
| visitor->VisitPointer(last);
|
|
|