Revision: 12215
Author:   [email protected]
Date:     Fri Jul 27 10:03:12 2012
Log: Removed recording of Target Slot in transition arrays since they only contain maps.

Review URL: https://chromiumcodereview.appspot.com/10802048
http://code.google.com/p/v8/source/detail?r=12215

Modified:
 /branches/bleeding_edge/src/objects.cc
 /branches/bleeding_edge/src/transitions-inl.h
 /branches/bleeding_edge/src/transitions.h

=======================================
--- /branches/bleeding_edge/src/objects.cc      Fri Jul 27 08:33:06 2012
+++ /branches/bleeding_edge/src/objects.cc      Fri Jul 27 10:03:12 2012
@@ -7218,6 +7218,7 @@
   if (!HasTransitionArray()) return;

   TransitionArray* t = transitions();
+  MarkCompactCollector* collector = heap->mark_compact_collector();

   int transition_index = 0;

@@ -7226,14 +7227,11 @@
     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++;
     }
=======================================
--- /branches/bleeding_edge/src/transitions-inl.h       Fri Jul 20 00:24:50 2012
+++ /branches/bleeding_edge/src/transitions-inl.h       Fri Jul 27 10:03:12 2012
@@ -142,14 +142,6 @@
   ASSERT(transition_number < number_of_transitions());
   return Map::cast(get(ToTargetIndex(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) {
=======================================
--- /branches/bleeding_edge/src/transitions.h   Fri Jul 20 00:24:50 2012
+++ /branches/bleeding_edge/src/transitions.h   Fri Jul 27 10:03:12 2012
@@ -53,7 +53,6 @@

   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

Reply via email to