Chromium Code Reviews| 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; |
| } |