| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 // | 4 // |
| 5 // Review notes: | 5 // Review notes: |
| 6 // | 6 // |
| 7 // - The use of macros in these inline functions may seem superfluous | 7 // - The use of macros in these inline functions may seem superfluous |
| 8 // but it is absolutely needed to make sure gcc generates optimal | 8 // but it is absolutely needed to make sure gcc generates optimal |
| 9 // code. gcc is not happy when attempting to inline too deep. | 9 // code. gcc is not happy when attempting to inline too deep. |
| 10 // | 10 // |
| (...skipping 6406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6417 } | 6417 } |
| 6418 | 6418 |
| 6419 | 6419 |
| 6420 void JSArrayBuffer::set_backing_store(void* value, WriteBarrierMode mode) { | 6420 void JSArrayBuffer::set_backing_store(void* value, WriteBarrierMode mode) { |
| 6421 intptr_t ptr = reinterpret_cast<intptr_t>(value); | 6421 intptr_t ptr = reinterpret_cast<intptr_t>(value); |
| 6422 WRITE_INTPTR_FIELD(this, kBackingStoreOffset, ptr); | 6422 WRITE_INTPTR_FIELD(this, kBackingStoreOffset, ptr); |
| 6423 } | 6423 } |
| 6424 | 6424 |
| 6425 | 6425 |
| 6426 ACCESSORS(JSArrayBuffer, byte_length, Object, kByteLengthOffset) | 6426 ACCESSORS(JSArrayBuffer, byte_length, Object, kByteLengthOffset) |
| 6427 ACCESSORS_TO_SMI(JSArrayBuffer, flag, kFlagOffset) | |
| 6428 | 6427 |
| 6429 | 6428 |
| 6430 bool JSArrayBuffer::is_external() { | 6429 void JSArrayBuffer::set_bit_field(uint32_t bits) { |
| 6431 return BooleanBit::get(flag(), kIsExternalBit); | 6430 if (kInt32Size != kPointerSize) { |
| 6431 WRITE_UINT32_FIELD(this, kBitFieldOffset + kInt32Size, 0); |
| 6432 } |
| 6433 WRITE_UINT32_FIELD(this, kBitFieldOffset, bits); |
| 6432 } | 6434 } |
| 6433 | 6435 |
| 6434 | 6436 |
| 6437 uint32_t JSArrayBuffer::bit_field() const { |
| 6438 return READ_UINT32_FIELD(this, kBitFieldOffset); |
| 6439 } |
| 6440 |
| 6441 |
| 6442 bool JSArrayBuffer::is_external() { return IsExternal::decode(bit_field()); } |
| 6443 |
| 6444 |
| 6435 void JSArrayBuffer::set_is_external(bool value) { | 6445 void JSArrayBuffer::set_is_external(bool value) { |
| 6436 set_flag(BooleanBit::set(flag(), kIsExternalBit, value)); | 6446 set_bit_field(IsExternal::update(bit_field(), value)); |
| 6437 } | 6447 } |
| 6438 | 6448 |
| 6439 | 6449 |
| 6440 bool JSArrayBuffer::should_be_freed() { | 6450 bool JSArrayBuffer::should_be_freed() { |
| 6441 return BooleanBit::get(flag(), kShouldBeFreed); | 6451 return ShouldBeFreed::decode(bit_field()); |
| 6442 } | 6452 } |
| 6443 | 6453 |
| 6444 | 6454 |
| 6445 void JSArrayBuffer::set_should_be_freed(bool value) { | 6455 void JSArrayBuffer::set_should_be_freed(bool value) { |
| 6446 set_flag(BooleanBit::set(flag(), kShouldBeFreed, value)); | 6456 set_bit_field(ShouldBeFreed::update(bit_field(), value)); |
| 6447 } | 6457 } |
| 6448 | 6458 |
| 6449 | 6459 |
| 6450 bool JSArrayBuffer::is_neuterable() { | 6460 bool JSArrayBuffer::is_neuterable() { |
| 6451 return BooleanBit::get(flag(), kIsNeuterableBit); | 6461 return IsNeuterable::decode(bit_field()); |
| 6452 } | 6462 } |
| 6453 | 6463 |
| 6454 | 6464 |
| 6455 void JSArrayBuffer::set_is_neuterable(bool value) { | 6465 void JSArrayBuffer::set_is_neuterable(bool value) { |
| 6456 set_flag(BooleanBit::set(flag(), kIsNeuterableBit, value)); | 6466 set_bit_field(IsNeuterable::update(bit_field(), value)); |
| 6457 } | 6467 } |
| 6458 | 6468 |
| 6459 | 6469 |
| 6460 bool JSArrayBuffer::was_neutered() { | 6470 bool JSArrayBuffer::was_neutered() { return WasNeutered::decode(bit_field()); } |
| 6461 return BooleanBit::get(flag(), kWasNeuteredBit); | 6471 |
| 6472 |
| 6473 void JSArrayBuffer::set_was_neutered(bool value) { |
| 6474 set_bit_field(WasNeutered::update(bit_field(), value)); |
| 6462 } | 6475 } |
| 6463 | 6476 |
| 6464 | 6477 |
| 6465 void JSArrayBuffer::set_was_neutered(bool value) { | |
| 6466 set_flag(BooleanBit::set(flag(), kWasNeuteredBit, value)); | |
| 6467 } | |
| 6468 | |
| 6469 | |
| 6470 ACCESSORS(JSArrayBuffer, weak_next, Object, kWeakNextOffset) | 6478 ACCESSORS(JSArrayBuffer, weak_next, Object, kWeakNextOffset) |
| 6471 | 6479 |
| 6472 | 6480 |
| 6473 Object* JSArrayBufferView::byte_offset() const { | 6481 Object* JSArrayBufferView::byte_offset() const { |
| 6474 if (WasNeutered()) return Smi::FromInt(0); | 6482 if (WasNeutered()) return Smi::FromInt(0); |
| 6475 return Object::cast(READ_FIELD(this, kByteOffsetOffset)); | 6483 return Object::cast(READ_FIELD(this, kByteOffsetOffset)); |
| 6476 } | 6484 } |
| 6477 | 6485 |
| 6478 | 6486 |
| 6479 void JSArrayBufferView::set_byte_offset(Object* value, WriteBarrierMode mode) { | 6487 void JSArrayBufferView::set_byte_offset(Object* value, WriteBarrierMode mode) { |
| (...skipping 1123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7603 #undef READ_SHORT_FIELD | 7611 #undef READ_SHORT_FIELD |
| 7604 #undef WRITE_SHORT_FIELD | 7612 #undef WRITE_SHORT_FIELD |
| 7605 #undef READ_BYTE_FIELD | 7613 #undef READ_BYTE_FIELD |
| 7606 #undef WRITE_BYTE_FIELD | 7614 #undef WRITE_BYTE_FIELD |
| 7607 #undef NOBARRIER_READ_BYTE_FIELD | 7615 #undef NOBARRIER_READ_BYTE_FIELD |
| 7608 #undef NOBARRIER_WRITE_BYTE_FIELD | 7616 #undef NOBARRIER_WRITE_BYTE_FIELD |
| 7609 | 7617 |
| 7610 } } // namespace v8::internal | 7618 } } // namespace v8::internal |
| 7611 | 7619 |
| 7612 #endif // V8_OBJECTS_INL_H_ | 7620 #endif // V8_OBJECTS_INL_H_ |
| OLD | NEW |