Reviewers: Michael Starzinger,
Message:
PTAL.
Description:
Removed recording of Target Slot in transition arrays since they only
contain
maps.
Please review this at https://chromiumcodereview.appspot.com/10802048/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/objects.cc
M src/transitions-inl.h
M src/transitions.h
Index: src/objects.cc
diff --git a/src/objects.cc b/src/objects.cc
index
7ce612d83b1c79dfd49adabbe7b694ba3fbcd122..36ba27ab273815698521ec616f186f983eeb5081
100644
--- a/src/objects.cc
+++ b/src/objects.cc
@@ -7144,6 +7144,7 @@ void Map::ClearNonLiveTransitions(Heap* heap) {
if (!HasTransitionArray()) return;
TransitionArray* t = transitions();
+ MarkCompactCollector* collector = heap->mark_compact_collector();
int transition_index = 0;
@@ -7152,14 +7153,10 @@ 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);
+ t->SetTarget(transition_index, t->GetTarget(i));
}
transition_index++;
}
Index: src/transitions-inl.h
diff --git a/src/transitions-inl.h b/src/transitions-inl.h
index
24ff8c2af09e9ff23a8bb95f1234616d1aec0f3a..6716c717abdc323bb5a8b1d150af9181b1ddb539
100644
--- a/src/transitions-inl.h
+++ b/src/transitions-inl.h
@@ -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);
Index: src/transitions.h
diff --git a/src/transitions.h b/src/transitions.h
index
bc661acf526657ee0483e619d6789be1cf71dc96..57f32535a5a01ebd938ca80513e4ddfe86fa3ea2
100644
--- a/src/transitions.h
+++ b/src/transitions.h
@@ -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);
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev