Index: src/transitions-inl.h |
diff --git a/src/transitions-inl.h b/src/transitions-inl.h |
index 5030616e4ea4ecc21bcf1092f80c753e0f849eb8..f2f0c3b7491cf86fc9d139bf030c10f4b233aae8 100644 |
--- a/src/transitions-inl.h |
+++ b/src/transitions-inl.h |
@@ -83,26 +83,22 @@ void TransitionArray::set_elements_transition(Map* transition_map, |
DescriptorArray* TransitionArray::descriptors() { |
- return DescriptorArray::cast(descriptors_pointer()->value()); |
+ return DescriptorArray::cast(get(kDescriptorsIndex)); |
} |
-void TransitionArray::set_descriptors(DescriptorArray* descriptors) { |
- ASSERT(!this->descriptors()->IsDescriptorArray() || |
- descriptors->number_of_descriptors() == 0 || |
- descriptors->HasEnumCache() || |
- !this->descriptors()->HasEnumCache()); |
- descriptors_pointer()->set_value(descriptors); |
-} |
- |
- |
-JSGlobalPropertyCell* TransitionArray::descriptors_pointer() { |
- return JSGlobalPropertyCell::cast(get(kDescriptorsPointerIndex)); |
+void TransitionArray::set_descriptors(DescriptorArray* descriptors, |
+ WriteBarrierMode mode) { |
+ Heap* heap = GetHeap(); |
+ WRITE_FIELD(this, kDescriptorsOffset, descriptors); |
+ CONDITIONAL_WRITE_BARRIER( |
+ heap, this, kDescriptorsOffset, descriptors, mode); |
} |
-void TransitionArray::set_descriptors_pointer(JSGlobalPropertyCell* pointer) { |
- set(kDescriptorsPointerIndex, pointer); |
+Object** TransitionArray::GetDescriptorsSlot() { |
+ return HeapObject::RawField(reinterpret_cast<HeapObject*>(this), |
+ kDescriptorsOffset); |
} |
@@ -196,7 +192,7 @@ PropertyDetails TransitionArray::GetTargetDetails(int transition_number) { |
int TransitionArray::Search(String* name) { |
- return internal::Search<ALL_ENTRIES>(this, name); |
+ return internal::Search(this, name); |
} |