Commit 26afeb6e authored by verwaest@chromium.org's avatar verwaest@chromium.org

Don't record elements transition slots since it will contain a map.

Additionally removed unused code.

Review URL: https://chromiumcodereview.appspot.com/10802039

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent b9b206e2
......@@ -1974,13 +1974,6 @@ void Marker<T>::MarkTransitionArray(TransitionArray* transitions) {
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
......@@ -2003,16 +1996,6 @@ void Marker<T>::MarkTransitionArray(TransitionArray* transitions) {
}
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
// iterator. Stop when the marking stack is filled or the end of the space
// is reached, whichever comes first.
......
......@@ -396,7 +396,6 @@ template<class BaseMarker> class Marker {
void MarkMapContents(Map* map);
void MarkDescriptorArray(DescriptorArray* descriptors);
void MarkTransitionArray(TransitionArray* transitions);
void MarkAccessorPairSlot(AccessorPair* accessors, int offset);
private:
BaseMarker* base_marker() {
......
......@@ -167,12 +167,6 @@ PropertyDetails TransitionArray::GetTargetDetails(int transition_number) {
}
Object** TransitionArray::GetElementsTransitionSlot() {
return HeapObject::RawField(reinterpret_cast<HeapObject*>(this),
kElementsTransitionOffset);
}
int TransitionArray::Search(String* name) {
return internal::Search(this, name);
}
......
......@@ -69,10 +69,8 @@ static bool InsertionPointFound(String* key1, String* key2) {
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);
......
......@@ -61,7 +61,6 @@ class TransitionArray: public FixedArray {
inline void set_elements_transition(
Map* target,
WriteBarrierMode mode = UPDATE_WRITE_BARRIER);
inline Object** GetElementsTransitionSlot();
inline bool HasElementsTransition();
inline void ClearElementsTransition();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment