Chromium Code Reviews| Index: src/objects-inl.h |
| diff --git a/src/objects-inl.h b/src/objects-inl.h |
| index 544443866efc52a82fdb20f9b84db8540c1334fb..270ca9eec2cdae3bc09a7e65c7a628de71d8903e 100644 |
| --- a/src/objects-inl.h |
| +++ b/src/objects-inl.h |
| @@ -1923,24 +1923,46 @@ int DescriptorArray::SearchWithCache(String* name) { |
| } |
| +Object** DescriptorArray::GetKeySlot(int descriptor_number) { |
| + ASSERT(descriptor_number < number_of_descriptors()); |
| + return HeapObject::RawField( |
| + reinterpret_cast<HeapObject*>(this), |
| + OffsetOfElementAt(ToKeyIndex(descriptor_number))); |
| +} |
| + |
| String* DescriptorArray::GetKey(int descriptor_number) { |
| ASSERT(descriptor_number < number_of_descriptors()); |
| return String::cast(get(ToKeyIndex(descriptor_number))); |
| } |
| +Object** DescriptorArray::GetValueSlot(int descriptor_number) { |
|
Florian Schneider
2012/05/22 16:53:09
Two empty lines between function definitions.
|
| + ASSERT(descriptor_number < number_of_descriptors()); |
| + return HeapObject::RawField( |
| + reinterpret_cast<HeapObject*>(this), |
| + OffsetOfElementAt(ToValueIndex(descriptor_number))); |
| +} |
| Object* DescriptorArray::GetValue(int descriptor_number) { |
|
Florian Schneider
2012/05/22 16:53:09
Two empty lines between function definitions. Here
|
| ASSERT(descriptor_number < number_of_descriptors()); |
| - return GetContentArray()->get(ToValueIndex(descriptor_number)); |
| + return get(ToValueIndex(descriptor_number)); |
| } |
| +void DescriptorArray::SetNullValueUnchecked(int descriptor_number, Heap* heap) { |
| + ASSERT(descriptor_number < number_of_descriptors()); |
| + ASSERT(!HEAP->InNewSpace(heap->null_value())); |
| + set_null_unchecked(heap, ToValueIndex(descriptor_number)); |
| +} |
| PropertyDetails DescriptorArray::GetDetails(int descriptor_number) { |
| ASSERT(descriptor_number < number_of_descriptors()); |
| - Object* details = GetContentArray()->get(ToDetailsIndex(descriptor_number)); |
| + Object* details = get(ToDetailsIndex(descriptor_number)); |
| return PropertyDetails(Smi::cast(details)); |
| } |
| +void DescriptorArray::SetDetailsUnchecked(int descriptor_number, Smi* value) { |
| + ASSERT(descriptor_number < number_of_descriptors()); |
| + set_unchecked(ToDetailsIndex(descriptor_number), value); |
| +} |
| PropertyType DescriptorArray::GetType(int descriptor_number) { |
| return GetDetails(descriptor_number).type(); |
| @@ -2022,11 +2044,10 @@ void DescriptorArray::Set(int descriptor_number, |
| NoIncrementalWriteBarrierSet(this, |
| ToKeyIndex(descriptor_number), |
| desc->GetKey()); |
| - FixedArray* content_array = GetContentArray(); |
| - NoIncrementalWriteBarrierSet(content_array, |
| + NoIncrementalWriteBarrierSet(this, |
| ToValueIndex(descriptor_number), |
| desc->GetValue()); |
| - NoIncrementalWriteBarrierSet(content_array, |
| + NoIncrementalWriteBarrierSet(this, |
| ToDetailsIndex(descriptor_number), |
| desc->GetDetails().AsSmi()); |
| } |
| @@ -2035,11 +2056,10 @@ void DescriptorArray::Set(int descriptor_number, |
| void DescriptorArray::NoIncrementalWriteBarrierSwapDescriptors( |
| int first, int second) { |
| NoIncrementalWriteBarrierSwap(this, ToKeyIndex(first), ToKeyIndex(second)); |
| - FixedArray* content_array = GetContentArray(); |
| - NoIncrementalWriteBarrierSwap(content_array, |
| + NoIncrementalWriteBarrierSwap(this, |
| ToValueIndex(first), |
| ToValueIndex(second)); |
| - NoIncrementalWriteBarrierSwap(content_array, |
| + NoIncrementalWriteBarrierSwap(this, |
| ToDetailsIndex(first), |
| ToDetailsIndex(second)); |
| } |
| @@ -2050,7 +2070,6 @@ DescriptorArray::WhitenessWitness::WhitenessWitness(DescriptorArray* array) |
| marking_->EnterNoMarkingScope(); |
| if (array->number_of_descriptors() > 0) { |
| ASSERT(Marking::Color(array) == Marking::WHITE_OBJECT); |
| - ASSERT(Marking::Color(array->GetContentArray()) == Marking::WHITE_OBJECT); |
| } |
| } |