Index: src/heap-inl.h |
=================================================================== |
--- src/heap-inl.h (revision 6554) |
+++ src/heap-inl.h (working copy) |
@@ -340,7 +340,8 @@ |
for (int remaining = byte_size / kPointerSize; |
remaining > 0; |
remaining--) { |
- Memory::Object_at(dst) = Memory::Object_at(src); |
+ Object* data = Memory::Object_at(src); |
+ Memory::Object_at(dst) = data; |
Vyacheslav Egorov (Chromium)
2011/02/02 13:15:47
revert please
Erik Corry
2011/02/03 13:21:17
Done.
|
if (Heap::InNewSpace(Memory::Object_at(dst))) { |
StoreBuffer::Mark(dst); |
@@ -387,7 +388,12 @@ |
// If the first word is a forwarding address, the object has already been |
// copied. |
if (first_word.IsForwardingAddress()) { |
- *p = first_word.ToForwardingAddress(); |
+ HeapObject* dest = first_word.ToForwardingAddress(); |
+ *p = dest; |
+ Address cell = reinterpret_cast<Address>(p); |
Vyacheslav Egorov (Chromium)
2011/02/02 13:15:47
cell is a bit confusing cause we have cell_space a
Erik Corry
2011/02/03 13:21:17
Done.
|
+ if (Heap::InNewSpace(dest) && !Heap::InNewSpace(cell)) { |
+ StoreBuffer::EnterDirectlyIntoStoreBuffer(cell); |
+ } |
return; |
} |