Index: src/heap/scavenger.cc |
diff --git a/src/heap/scavenger.cc b/src/heap/scavenger.cc |
index 1d785d08d24232388be4d45603d68f9da313c22a..d7c3f2b9d0538878a2928b4b8ed51acc485a5fe3 100644 |
--- a/src/heap/scavenger.cc |
+++ b/src/heap/scavenger.cc |
@@ -295,7 +295,13 @@ class ScavengingVisitor : public StaticVisitorBase { |
DCHECK(map_word.IsForwardingAddress()); |
HeapObject* target = map_word.ToForwardingAddress(); |
if (!heap->InNewSpace(target)) { |
- heap->array_buffer_tracker()->Promote(JSArrayBuffer::cast(target)); |
+ heap->array_buffer_tracker()->Promote( |
+ JSArrayBuffer::cast(target), |
+ reinterpret_cast<JSArrayBuffer*>(object)); |
+ } else { |
+ heap->array_buffer_tracker()->SemiSpaceCopy( |
+ JSArrayBuffer::cast(target), |
+ reinterpret_cast<JSArrayBuffer*>(object)); |
} |
} |