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:
verwaest@chromium.org 2012-07-27 17:03:12 +00:00
parent cf6d80e154
commit a448d42428
3 changed files with 3 additions and 14 deletions

View File

@ -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++;
}

View File

@ -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);

View File

@ -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);