Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(263)

Unified Diff: src/transitions-inl.h

Issue 11028027: Revert trunk to bleeding_edge at r12484 (Closed) Base URL: https://v8.googlecode.com/svn/trunk
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/transitions.cc ('k') | src/utils.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/transitions-inl.h
diff --git a/src/transitions-inl.h b/src/transitions-inl.h
index 17c42edce2e50daf51a7a9c212cf33e4cde30807..385bdd11998526d5e7b6ff6b516d70db0a5baaf5 100644
--- a/src/transitions-inl.h
+++ b/src/transitions-inl.h
@@ -69,14 +69,12 @@ void TransitionArray::ClearElementsTransition() {
bool TransitionArray::HasElementsTransition() {
- return IsFullTransitionArray() &&
- get(kElementsTransitionIndex) != Smi::FromInt(0);
+ return get(kElementsTransitionIndex) != Smi::FromInt(0);
}
void TransitionArray::set_elements_transition(Map* transition_map,
WriteBarrierMode mode) {
- ASSERT(IsFullTransitionArray());
Heap* heap = GetHeap();
WRITE_FIELD(this, kElementsTransitionOffset, transition_map);
CONDITIONAL_WRITE_BARRIER(
@@ -85,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);
}
@@ -123,13 +117,12 @@ void TransitionArray::set_back_pointer_storage(Object* back_pointer,
bool TransitionArray::HasPrototypeTransitions() {
- return IsFullTransitionArray() &&
- get(kPrototypeTransitionsIndex) != Smi::FromInt(0);
+ Object* prototype_transitions = get(kPrototypeTransitionsIndex);
+ return prototype_transitions != Smi::FromInt(0);
}
FixedArray* TransitionArray::GetPrototypeTransitions() {
- ASSERT(IsFullTransitionArray());
Object* prototype_transitions = get(kPrototypeTransitionsIndex);
return FixedArray::cast(prototype_transitions);
}
@@ -143,7 +136,7 @@ HeapObject* TransitionArray::UncheckedPrototypeTransitions() {
void TransitionArray::SetPrototypeTransitions(FixedArray* transitions,
WriteBarrierMode mode) {
- ASSERT(IsFullTransitionArray());
+ ASSERT(this != NULL);
ASSERT(transitions->IsFixedArray());
Heap* heap = GetHeap();
WRITE_FIELD(this, kPrototypeTransitionsOffset, transitions);
@@ -159,7 +152,6 @@ Object** TransitionArray::GetPrototypeTransitionsSlot() {
Object** TransitionArray::GetKeySlot(int transition_number) {
- ASSERT(!IsSimpleTransition());
ASSERT(transition_number < number_of_transitions());
return HeapObject::RawField(
reinterpret_cast<HeapObject*>(this),
@@ -168,39 +160,24 @@ Object** TransitionArray::GetKeySlot(int transition_number) {
String* TransitionArray::GetKey(int transition_number) {
- if (IsSimpleTransition()) {
- Map* target = GetTarget(kSimpleTransitionIndex);
- int descriptor = target->LastAdded();
- String* key = target->instance_descriptors()->GetKey(descriptor);
- return key;
- }
ASSERT(transition_number < number_of_transitions());
return String::cast(get(ToKeyIndex(transition_number)));
}
void TransitionArray::SetKey(int transition_number, String* key) {
- ASSERT(!IsSimpleTransition());
ASSERT(transition_number < number_of_transitions());
set(ToKeyIndex(transition_number), key);
}
Map* TransitionArray::GetTarget(int transition_number) {
- if (IsSimpleTransition()) {
- ASSERT(transition_number == kSimpleTransitionIndex);
- return Map::cast(get(kSimpleTransitionTarget));
- }
ASSERT(transition_number < number_of_transitions());
return Map::cast(get(ToTargetIndex(transition_number)));
}
void TransitionArray::SetTarget(int transition_number, Map* value) {
- if (IsSimpleTransition()) {
- ASSERT(transition_number == kSimpleTransitionIndex);
- return set(kSimpleTransitionTarget, value);
- }
ASSERT(transition_number < number_of_transitions());
set(ToTargetIndex(transition_number), value);
}
@@ -215,17 +192,20 @@ PropertyDetails TransitionArray::GetTargetDetails(int transition_number) {
int TransitionArray::Search(String* name) {
- return internal::Search<ALL_ENTRIES>(this, name);
+ return internal::Search(this, name);
}
-void TransitionArray::NoIncrementalWriteBarrierSet(int transition_number,
- String* key,
- Map* target) {
- FixedArray::NoIncrementalWriteBarrierSet(
- this, ToKeyIndex(transition_number), key);
- FixedArray::NoIncrementalWriteBarrierSet(
- this, ToTargetIndex(transition_number), target);
+void TransitionArray::Set(int transition_number,
+ String* key,
+ Map* target,
+ const WhitenessWitness&) {
+ NoIncrementalWriteBarrierSet(this,
+ ToKeyIndex(transition_number),
+ key);
+ NoIncrementalWriteBarrierSet(this,
+ ToTargetIndex(transition_number),
+ target);
}
« no previous file with comments | « src/transitions.cc ('k') | src/utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698