Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index c8b275397370d3eb842332a0e5a0e5957ff3678f..9ab95592bda4621c71166888cde40751e94091c2 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -3347,23 +3347,6 @@ class ConstantPoolArray: public FixedArrayBase { |
// [2 + number of descriptors * kDescriptorSize]: start of slack |
class DescriptorArray: public FixedArray { |
public: |
- // WhitenessWitness is used to prove that a descriptor array is white |
- // (unmarked), so incremental write barriers can be skipped because the |
- // marking invariant cannot be broken and slots pointing into evacuation |
- // candidates will be discovered when the object is scanned. A witness is |
- // always stack-allocated right after creating an array. By allocating a |
- // witness, incremental marking is globally disabled. The witness is then |
- // passed along wherever needed to statically prove that the array is known to |
- // be white. |
- class WhitenessWitness { |
- public: |
- inline explicit WhitenessWitness(FixedArray* array); |
- inline ~WhitenessWitness(); |
- |
- private: |
- IncrementalMarking* marking_; |
- }; |
- |
// Returns true for both shared empty_descriptor_array and for smis, which the |
// map uses to encode additional bit fields when the descriptor array is not |
// yet used. |
@@ -3453,15 +3436,12 @@ class DescriptorArray: public FixedArray { |
// Accessor for complete descriptor. |
inline void Get(int descriptor_number, Descriptor* desc); |
- inline void Set(int descriptor_number, |
- Descriptor* desc, |
- const WhitenessWitness&); |
+ inline void Set(int descriptor_number, Descriptor* desc); |
void Replace(int descriptor_number, Descriptor* descriptor); |
// Append automatically sets the enumeration index. This should only be used |
// to add descriptors in bulk at the end, followed by sorting the descriptor |
// array. |
- inline void Append(Descriptor* desc, const WhitenessWitness&); |
inline void Append(Descriptor* desc); |
static Handle<DescriptorArray> Merge(Handle<Map> left_map, |
@@ -3556,6 +3536,23 @@ class DescriptorArray: public FixedArray { |
} |
private: |
+ // WhitenessWitness is used to prove that a descriptor array is white |
+ // (unmarked), so incremental write barriers can be skipped because the |
+ // marking invariant cannot be broken and slots pointing into evacuation |
+ // candidates will be discovered when the object is scanned. A witness is |
+ // always stack-allocated right after creating an array. By allocating a |
+ // witness, incremental marking is globally disabled. The witness is then |
+ // passed along wherever needed to statically prove that the array is known to |
+ // be white. |
+ class WhitenessWitness { |
+ public: |
+ inline explicit WhitenessWitness(FixedArray* array); |
Toon Verwaest
2014/04/11 10:37:59
DescriptorArray* descriptors?
mvstanton
2014/04/11 11:25:20
Sure.
|
+ inline ~WhitenessWitness(); |
+ |
+ private: |
+ IncrementalMarking* marking_; |
+ }; |
+ |
// An entry in a DescriptorArray, represented as an (array, index) pair. |
class Entry { |
public: |
@@ -3595,7 +3592,11 @@ class DescriptorArray: public FixedArray { |
DescriptorArray* src, |
const WhitenessWitness&); |
- inline void Set(int descriptor_number, Descriptor* desc); |
+ inline void Set(int descriptor_number, |
+ Descriptor* desc, |
+ const WhitenessWitness&); |
+ |
+ inline void Append(Descriptor* desc, const WhitenessWitness&); |
// Swap first and second descriptor. |
inline void SwapSortedKeys(int first, int second); |
@@ -4098,9 +4099,9 @@ class NameDictionary: public Dictionary<NameDictionaryShape, Name*> { |
Handle<NameDictionary> dictionary); |
// For transforming properties of a JSObject. |
- MUST_USE_RESULT MaybeObject* TransformPropertiesToFastFor( |
- JSObject* obj, |
- int unused_property_fields); |
+ static void TransformPropertiesToFastFor(Handle<NameDictionary> dictionary, |
+ Handle<JSObject> obj, |
+ int unused_property_fields); |
// Find entry for key, otherwise return kNotFound. Optimized version of |
// HashTable::FindEntry. |
@@ -6395,7 +6396,6 @@ class Map: public HeapObject { |
static Handle<Map> RawCopy(Handle<Map> map, int instance_size); |
MUST_USE_RESULT MaybeObject* RawCopy(int instance_size); |
static Handle<Map> CopyDropDescriptors(Handle<Map> map); |
- MUST_USE_RESULT MaybeObject* CopyDropDescriptors(); |
static Handle<Map> CopyReplaceDescriptors( |
Handle<Map> map, |
Handle<DescriptorArray> descriptors, |
@@ -6439,8 +6439,7 @@ class Map: public HeapObject { |
PropertyNormalizationMode mode, |
NormalizedMapSharingMode sharing); |
- inline void AppendDescriptor(Descriptor* desc, |
- const DescriptorArray::WhitenessWitness&); |
+ inline void AppendDescriptor(Descriptor* desc); |
// Returns a copy of the map, with all transitions dropped from the |
// instance descriptors. |