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

Unified Diff: src/transitions.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/string-stream.cc ('k') | src/transitions.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/transitions.h
diff --git a/src/transitions.h b/src/transitions.h
index 52a043ce096d837db9e49ef1a214d4591f78bf9c..63e52badcdf4a96066e710dbfe20cd848b44b05e 100644
--- a/src/transitions.h
+++ b/src/transitions.h
@@ -72,9 +72,9 @@ class TransitionArray: public FixedArray {
inline void ClearElementsTransition();
inline DescriptorArray* descriptors();
- inline void set_descriptors(DescriptorArray* descriptors);
- inline JSGlobalPropertyCell* descriptors_pointer();
- inline void set_descriptors_pointer(JSGlobalPropertyCell* pointer);
+ inline void set_descriptors(DescriptorArray* descriptors,
+ WriteBarrierMode mode = UPDATE_WRITE_BARRIER);
+ inline Object** GetDescriptorsSlot();
inline Object* back_pointer_storage();
inline void set_back_pointer_storage(
@@ -91,7 +91,7 @@ class TransitionArray: public FixedArray {
// Returns the number of transitions in the array.
int number_of_transitions() {
- if (IsSimpleTransition()) return 1;
+ ASSERT(length() >= kFirstIndex);
int len = length();
return len <= kFirstIndex ? 0 : (len - kFirstIndex) / kTransitionSize;
}
@@ -99,17 +99,7 @@ class TransitionArray: public FixedArray {
inline int number_of_entries() { return number_of_transitions(); }
// Allocate a new transition array with a single entry.
- static MUST_USE_RESULT MaybeObject* NewWith(
- SimpleTransitionFlag flag,
- String* key,
- Map* target,
- JSGlobalPropertyCell* descriptor_pointer,
- Object* back_pointer);
-
- static MUST_USE_RESULT MaybeObject* AllocateDescriptorsHolder(
- JSGlobalPropertyCell* descriptor_pointer);
-
- MUST_USE_RESULT MaybeObject* ExtendToFullTransitionArray();
+ static MUST_USE_RESULT MaybeObject* NewWith(String* name, Map* target);
// Copy the transition array, inserting a new transition.
// TODO(verwaest): This should not cause an existing transition to be
@@ -117,21 +107,16 @@ class TransitionArray: public FixedArray {
MUST_USE_RESULT MaybeObject* CopyInsert(String* name, Map* target);
// Copy a single transition from the origin array.
- inline void NoIncrementalWriteBarrierCopyFrom(TransitionArray* origin,
- int origin_transition,
- int target_transition);
+ inline void CopyFrom(TransitionArray* origin,
+ int origin_transition,
+ int target_transition,
+ const WhitenessWitness& witness);
// Search a transition for a given property name.
inline int Search(String* name);
// Allocates a TransitionArray.
- MUST_USE_RESULT static MaybeObject* Allocate(
- int number_of_transitions,
- JSGlobalPropertyCell* descriptors_cell);
-
- bool IsDescriptorsHolder() { return length() == kDescriptorsHolderSize; }
- bool IsSimpleTransition() { return length() == kSimpleTransitionSize; }
- bool IsFullTransitionArray() { return length() >= kFirstIndex; }
+ MUST_USE_RESULT static MaybeObject* Allocate(int number_of_transitions);
// Casting.
static inline TransitionArray* cast(Object* obj);
@@ -139,32 +124,22 @@ class TransitionArray: public FixedArray {
// Constant for denoting key was not found.
static const int kNotFound = -1;
- static const int kDescriptorsPointerIndex = 0;
+ static const int kDescriptorsIndex = 0;
static const int kBackPointerStorageIndex = 1;
- static const int kDescriptorsHolderSize = 2;
-
- // Layout for full transition arrays.
static const int kElementsTransitionIndex = 2;
static const int kPrototypeTransitionsIndex = 3;
static const int kFirstIndex = 4;
- // Layout for simple transition arrays.
- static const int kSimpleTransitionTarget = 2;
- static const int kSimpleTransitionSize = 3;
- static const int kSimpleTransitionIndex = 0;
- STATIC_ASSERT(kSimpleTransitionIndex != kNotFound);
-
- static const int kDescriptorsPointerOffset = FixedArray::kHeaderSize;
- static const int kBackPointerStorageOffset = kDescriptorsPointerOffset +
+ // Layout transition array header.
+ static const int kDescriptorsOffset = FixedArray::kHeaderSize;
+ static const int kBackPointerStorageOffset = kDescriptorsOffset +
kPointerSize;
-
- // Layout for the full transition array header.
static const int kElementsTransitionOffset = kBackPointerStorageOffset +
kPointerSize;
static const int kPrototypeTransitionsOffset = kElementsTransitionOffset +
kPointerSize;
- // Layout of map transition entries in full transition arrays.
+ // Layout of map transition.
static const int kTransitionKey = 0;
static const int kTransitionTarget = 1;
static const int kTransitionSize = 2;
@@ -178,7 +153,7 @@ class TransitionArray: public FixedArray {
#endif
#ifdef DEBUG
- bool IsSortedNoDuplicates(int valid_entries = -1);
+ bool IsSortedNoDuplicates();
bool IsConsistentWithBackPointers(Map* current_map);
bool IsEqualTo(TransitionArray* other);
#endif
@@ -201,9 +176,10 @@ class TransitionArray: public FixedArray {
kTransitionTarget;
}
- inline void NoIncrementalWriteBarrierSet(int transition_number,
- String* key,
- Map* target);
+ inline void Set(int transition_number,
+ String* key,
+ Map* target,
+ const WhitenessWitness&);
DISALLOW_IMPLICIT_CONSTRUCTORS(TransitionArray);
};
« no previous file with comments | « src/string-stream.cc ('k') | src/transitions.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698