 Chromium Code Reviews
 Chromium Code Reviews Issue 1834373003:
  [heap] Add optimized RecordWrites  (Closed) 
  Base URL: https://chromium.googlesource.com/v8/v8.git@master
    
  
    Issue 1834373003:
  [heap] Add optimized RecordWrites  (Closed) 
  Base URL: https://chromium.googlesource.com/v8/v8.git@master| Index: src/heap/heap-inl.h | 
| diff --git a/src/heap/heap-inl.h b/src/heap/heap-inl.h | 
| index 7b2f5ead9b9a3ff53617f12212ebdfe253f99eac..df9072e78020dc07f3658f4a50ff1febb4b7d049 100644 | 
| --- a/src/heap/heap-inl.h | 
| +++ b/src/heap/heap-inl.h | 
| @@ -399,9 +399,20 @@ void Heap::RecordWrite(Object* object, int offset, Object* o) { | 
| if (!InNewSpace(o) || !object->IsHeapObject() || InNewSpace(object)) { | 
| return; | 
| } | 
| - Page* page = Page::FromAddress(reinterpret_cast<Address>(object)); | 
| - Address slot = HeapObject::cast(object)->address() + offset; | 
| - RememberedSet<OLD_TO_NEW>::Insert(page, slot); | 
| + RememberedSet<OLD_TO_NEW>::Insert( | 
| + Page::FromAddress(reinterpret_cast<Address>(object)), | 
| + HeapObject::cast(object)->address() + offset); | 
| +} | 
| + | 
| +void Heap::RecordFixedArrayElements(FixedArray* array, int offset, int length) { | 
| + if (InNewSpace(array)) return; | 
| + Page* page = Page::FromAddress(reinterpret_cast<Address>(array)); | 
| + for (int i = 0; i < length; i++) { | 
| + if (!InNewSpace(array->get(i))) continue; | 
| 
ulan
2016/04/11 12:49:23
This should be if (!InNewSpace(array->get(offset +
 | 
| + RememberedSet<OLD_TO_NEW>::Insert( | 
| + page, | 
| + reinterpret_cast<Address>(array->RawFieldOfElementAt(offset + i))); | 
| + } | 
| } |