Revision: 12150
Author:   [email protected]
Date:     Fri Jul 20 00:24:50 2012
Log: Don't record elements transition slots since it will contain a map.

Additionally removed unused code.

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

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

=======================================
--- /branches/bleeding_edge/src/mark-compact.cc Thu Jul 19 11:58:23 2012
+++ /branches/bleeding_edge/src/mark-compact.cc Fri Jul 20 00:24:50 2012
@@ -1974,13 +1974,6 @@
   if (!base_marker()->MarkObjectWithoutPush(transitions)) return;
   Object** transitions_start = transitions->data_start();

-  if (transitions->HasElementsTransition()) {
-    mark_compact_collector()->RecordSlot(
-        transitions_start,
-        transitions->GetElementsTransitionSlot(),
-        transitions->elements_transition());
-  }
-
   if (transitions->HasPrototypeTransitions()) {
// Mark prototype transitions array but don't push it into marking stack.
     // This will make references from it weak. We will clean dead prototype
@@ -2001,16 +1994,6 @@
     }
   }
 }
-
-
-template <class T>
-void Marker<T>::MarkAccessorPairSlot(AccessorPair* accessors, int offset) {
-  Object** slot = HeapObject::RawField(accessors, offset);
-  HeapObject* accessor = HeapObject::cast(*slot);
-  if (accessor->IsMap()) return;
-  mark_compact_collector()->RecordSlot(slot, slot, accessor);
-  base_marker()->MarkObjectAndPush(accessor);
-}


 // Fill the marking stack with overflowed objects returned by the given
=======================================
--- /branches/bleeding_edge/src/mark-compact.h  Thu Jul  5 06:54:20 2012
+++ /branches/bleeding_edge/src/mark-compact.h  Fri Jul 20 00:24:50 2012
@@ -396,7 +396,6 @@
   void MarkMapContents(Map* map);
   void MarkDescriptorArray(DescriptorArray* descriptors);
   void MarkTransitionArray(TransitionArray* transitions);
-  void MarkAccessorPairSlot(AccessorPair* accessors, int offset);

  private:
   BaseMarker* base_marker() {
=======================================
--- /branches/bleeding_edge/src/transitions-inl.h       Thu Jul 19 07:45:19 2012
+++ /branches/bleeding_edge/src/transitions-inl.h       Fri Jul 20 00:24:50 2012
@@ -165,12 +165,6 @@
   ASSERT(descriptor != Map::kNoneAdded);
   return descriptors->GetDetails(descriptor);
 }
-
-
-Object** TransitionArray::GetElementsTransitionSlot() {
-  return HeapObject::RawField(reinterpret_cast<HeapObject*>(this),
-                              kElementsTransitionOffset);
-}


 int TransitionArray::Search(String* name) {
=======================================
--- /branches/bleeding_edge/src/transitions.cc  Mon Jul 16 07:02:50 2012
+++ /branches/bleeding_edge/src/transitions.cc  Fri Jul 20 00:24:50 2012
@@ -69,10 +69,8 @@
 MaybeObject* TransitionArray::NewWith(String* name, Map* target) {
   TransitionArray* result;

-  { MaybeObject* maybe_array;
-    maybe_array = TransitionArray::Allocate(1);
-    if (!maybe_array->To(&result)) return maybe_array;
-  }
+  MaybeObject* maybe_array = TransitionArray::Allocate(1);
+  if (!maybe_array->To(&result)) return maybe_array;

   FixedArray::WhitenessWitness witness(result);

=======================================
--- /branches/bleeding_edge/src/transitions.h   Mon Jul 16 07:02:50 2012
+++ /branches/bleeding_edge/src/transitions.h   Fri Jul 20 00:24:50 2012
@@ -61,7 +61,6 @@
   inline void set_elements_transition(
       Map* target,
       WriteBarrierMode mode = UPDATE_WRITE_BARRIER);
-  inline Object** GetElementsTransitionSlot();
   inline bool HasElementsTransition();
   inline void ClearElementsTransition();

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to