| Index: src/heap/heap.cc
|
| diff --git a/src/heap/heap.cc b/src/heap/heap.cc
|
| index 1ccdf3b4a51f7d88e7b0f0a3303ebb06b95fe64e..3302a176318d609afb85d57f170a8223d48642d4 100644
|
| --- a/src/heap/heap.cc
|
| +++ b/src/heap/heap.cc
|
| @@ -1359,6 +1359,11 @@ void Heap::MarkCompactPrologue() {
|
| }
|
|
|
|
|
| +void Heap::MigrateMixedObjectInNewSpaceEpilog(HeapObject* dst) {
|
| + DCHECK(dst->MayContainMixedValues());
|
| +}
|
| +
|
| +
|
| // Helper class for copying HeapObjects
|
| class ScavengeVisitor : public ObjectVisitor {
|
| public:
|
| @@ -2124,6 +2129,10 @@ class ScavengingVisitor : public StaticVisitorBase {
|
| // Copy the content of source to target.
|
| heap->CopyBlock(target->address(), source->address(), size);
|
|
|
| + if (target->MayContainMixedValues()) {
|
| + heap->MigrateMixedObjectInNewSpaceEpilog(target);
|
| + }
|
| +
|
| // Set the forwarding address.
|
| source->set_map_word(MapWord::FromForwardingAddress(target));
|
|
|
|
|