Removed recording of Target Slot in transition arrays since they only contain maps.
Review URL: https://chromiumcodereview.appspot.com/10802048 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
cf6d80e154
commit
a448d42428
@ -7218,6 +7218,7 @@ void Map::ClearNonLiveTransitions(Heap* heap) {
|
||||
if (!HasTransitionArray()) return;
|
||||
|
||||
TransitionArray* t = transitions();
|
||||
MarkCompactCollector* collector = heap->mark_compact_collector();
|
||||
|
||||
int transition_index = 0;
|
||||
|
||||
@ -7226,14 +7227,11 @@ void Map::ClearNonLiveTransitions(Heap* heap) {
|
||||
if (!ClearBackPointer(heap, t->GetTarget(i))) {
|
||||
if (i != transition_index) {
|
||||
String* key = t->GetKey(i);
|
||||
Map* target = t->GetTarget(i);
|
||||
t->SetKey(transition_index, key);
|
||||
t->SetTarget(transition_index, target);
|
||||
MarkCompactCollector* collector = heap->mark_compact_collector();
|
||||
Object** key_slot = t->GetKeySlot(transition_index);
|
||||
collector->RecordSlot(key_slot, key_slot, key);
|
||||
Object** target_slot = t->GetTargetSlot(transition_index);
|
||||
collector->RecordSlot(target_slot, target_slot, target);
|
||||
// Target slots do not need to be recorded since maps are not compacted.
|
||||
t->SetTarget(transition_index, t->GetTarget(i));
|
||||
}
|
||||
transition_index++;
|
||||
}
|
||||
|
@ -144,14 +144,6 @@ Map* TransitionArray::GetTarget(int transition_number) {
|
||||
}
|
||||
|
||||
|
||||
Object** TransitionArray::GetTargetSlot(int transition_number) {
|
||||
ASSERT(transition_number < number_of_transitions());
|
||||
return HeapObject::RawField(
|
||||
reinterpret_cast<HeapObject*>(this),
|
||||
OffsetOfElementAt(ToTargetIndex(transition_number)));
|
||||
}
|
||||
|
||||
|
||||
void TransitionArray::SetTarget(int transition_number, Map* value) {
|
||||
ASSERT(transition_number < number_of_transitions());
|
||||
set(ToTargetIndex(transition_number), value);
|
||||
|
@ -53,7 +53,6 @@ class TransitionArray: public FixedArray {
|
||||
|
||||
inline Map* GetTarget(int transition_number);
|
||||
inline void SetTarget(int transition_number, Map* target);
|
||||
inline Object** GetTargetSlot(int transition_number);
|
||||
|
||||
inline PropertyDetails GetTargetDetails(int transition_number);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user