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); |