| Index: src/objects-inl.h
|
| diff --git a/src/objects-inl.h b/src/objects-inl.h
|
| index dc5048d0bd720e09329a77691fefeed3c4ac070a..aa845f79e550733ef64c4010d81a0a2aae0ea08f 100644
|
| --- a/src/objects-inl.h
|
| +++ b/src/objects-inl.h
|
| @@ -2420,6 +2420,9 @@ void FixedDoubleArray::set(int index, double value) {
|
| DCHECK(!is_the_hole(index));
|
| }
|
|
|
| +void FixedDoubleArray::set_the_hole(Isolate* isolate, int index) {
|
| + set_the_hole(index);
|
| +}
|
|
|
| void FixedDoubleArray::set_the_hole(int index) {
|
| DCHECK(map() != GetHeap()->fixed_cow_array_map() &&
|
| @@ -2597,8 +2600,9 @@ AllocationAlignment HeapObject::RequiredAlignment() {
|
| void FixedArray::set(int index,
|
| Object* value,
|
| WriteBarrierMode mode) {
|
| - DCHECK(map() != GetHeap()->fixed_cow_array_map());
|
| - DCHECK(index >= 0 && index < this->length());
|
| + DCHECK_NE(map(), GetHeap()->fixed_cow_array_map());
|
| + DCHECK_GE(index, 0);
|
| + DCHECK_LT(index, this->length());
|
| int offset = kHeaderSize + index * kPointerSize;
|
| WRITE_FIELD(this, offset, value);
|
| CONDITIONAL_WRITE_BARRIER(GetHeap(), this, offset, value, mode);
|
| @@ -2608,45 +2612,38 @@ void FixedArray::set(int index,
|
| void FixedArray::NoWriteBarrierSet(FixedArray* array,
|
| int index,
|
| Object* value) {
|
| - DCHECK(array->map() != array->GetHeap()->fixed_cow_array_map());
|
| - DCHECK(index >= 0 && index < array->length());
|
| + DCHECK_NE(array->map(), array->GetHeap()->fixed_cow_array_map());
|
| + DCHECK_GE(index, 0);
|
| + DCHECK_LT(index, array->length());
|
| DCHECK(!array->GetHeap()->InNewSpace(value));
|
| WRITE_FIELD(array, kHeaderSize + index * kPointerSize, value);
|
| }
|
|
|
| -
|
| void FixedArray::set_undefined(int index) {
|
| - DCHECK(map() != GetHeap()->fixed_cow_array_map());
|
| - DCHECK(index >= 0 && index < this->length());
|
| - DCHECK(!GetHeap()->InNewSpace(GetHeap()->undefined_value()));
|
| - WRITE_FIELD(this,
|
| - kHeaderSize + index * kPointerSize,
|
| - GetHeap()->undefined_value());
|
| + set_undefined(GetIsolate(), index);
|
| }
|
|
|
| -
|
| -void FixedArray::set_null(int index) {
|
| - DCHECK(index >= 0 && index < this->length());
|
| - DCHECK(!GetHeap()->InNewSpace(GetHeap()->null_value()));
|
| - WRITE_FIELD(this,
|
| - kHeaderSize + index * kPointerSize,
|
| - GetHeap()->null_value());
|
| +void FixedArray::set_undefined(Isolate* isolate, int index) {
|
| + FixedArray::NoWriteBarrierSet(this, index,
|
| + isolate->heap()->undefined_value());
|
| }
|
|
|
| +void FixedArray::set_null(int index) { set_null(GetIsolate(), index); }
|
|
|
| -void FixedArray::set_the_hole(int index) {
|
| - DCHECK(map() != GetHeap()->fixed_cow_array_map());
|
| - DCHECK(index >= 0 && index < this->length());
|
| - DCHECK(!GetHeap()->InNewSpace(GetHeap()->the_hole_value()));
|
| - WRITE_FIELD(this,
|
| - kHeaderSize + index * kPointerSize,
|
| - GetHeap()->the_hole_value());
|
| +void FixedArray::set_null(Isolate* isolate, int index) {
|
| + FixedArray::NoWriteBarrierSet(this, index, isolate->heap()->null_value());
|
| }
|
|
|
| +void FixedArray::set_the_hole(int index) { set_the_hole(GetIsolate(), index); }
|
| +
|
| +void FixedArray::set_the_hole(Isolate* isolate, int index) {
|
| + FixedArray::NoWriteBarrierSet(this, index, isolate->heap()->the_hole_value());
|
| +}
|
|
|
| void FixedArray::FillWithHoles(int from, int to) {
|
| + Isolate* isolate = GetIsolate();
|
| for (int i = from; i < to; i++) {
|
| - set_the_hole(i);
|
| + set_the_hole(isolate, i);
|
| }
|
| }
|
|
|
|
|