| Index: src/objects-inl.h
|
| diff --git a/src/objects-inl.h b/src/objects-inl.h
|
| index 052fc5147288277ce83293579553ac02d784aac8..661566fb06df01c2287a882dd968bbe673782204 100644
|
| --- a/src/objects-inl.h
|
| +++ b/src/objects-inl.h
|
| @@ -1530,22 +1530,6 @@ HeapObjectContents HeapObject::ContentType() {
|
| }
|
|
|
|
|
| -void HeapObject::IteratePointers(ObjectVisitor* v, int start, int end) {
|
| - v->VisitPointers(reinterpret_cast<Object**>(FIELD_ADDR(this, start)),
|
| - reinterpret_cast<Object**>(FIELD_ADDR(this, end)));
|
| -}
|
| -
|
| -
|
| -void HeapObject::IteratePointer(ObjectVisitor* v, int offset) {
|
| - v->VisitPointer(reinterpret_cast<Object**>(FIELD_ADDR(this, offset)));
|
| -}
|
| -
|
| -
|
| -void HeapObject::IterateNextCodeLink(ObjectVisitor* v, int offset) {
|
| - v->VisitNextCodeLink(reinterpret_cast<Object**>(FIELD_ADDR(this, offset)));
|
| -}
|
| -
|
| -
|
| double HeapNumber::value() const {
|
| return READ_DOUBLE_FIELD(this, kValueOffset);
|
| }
|
| @@ -4173,11 +4157,6 @@ Address ByteArray::GetDataStartAddress() {
|
| }
|
|
|
|
|
| -void BytecodeArray::BytecodeArrayIterateBody(ObjectVisitor* v) {
|
| - IteratePointer(v, kConstantPoolOffset);
|
| -}
|
| -
|
| -
|
| byte BytecodeArray::get(int index) {
|
| DCHECK(index >= 0 && index < this->length());
|
| return READ_BYTE_FIELD(this, kHeaderSize + index * kCharSize);
|
| @@ -4538,7 +4517,8 @@ int HeapObject::SizeFromMap(Map* map) {
|
| // Only inline the most frequent cases.
|
| InstanceType instance_type = map->instance_type();
|
| if (instance_type == FIXED_ARRAY_TYPE) {
|
| - return FixedArray::BodyDescriptor::SizeOf(map, this);
|
| + return FixedArray::SizeFor(
|
| + reinterpret_cast<FixedArray*>(this)->synchronized_length());
|
| }
|
| if (instance_type == ONE_BYTE_STRING_TYPE ||
|
| instance_type == ONE_BYTE_INTERNALIZED_STRING_TYPE) {
|
| @@ -6684,32 +6664,6 @@ void JSArrayBuffer::set_is_shared(bool value) {
|
| }
|
|
|
|
|
| -// static
|
| -template <typename StaticVisitor>
|
| -void JSArrayBuffer::JSArrayBufferIterateBody(Heap* heap, HeapObject* obj) {
|
| - StaticVisitor::VisitPointers(
|
| - heap, obj,
|
| - HeapObject::RawField(obj, JSArrayBuffer::BodyDescriptor::kStartOffset),
|
| - HeapObject::RawField(obj,
|
| - JSArrayBuffer::kByteLengthOffset + kPointerSize));
|
| - StaticVisitor::VisitPointers(
|
| - heap, obj, HeapObject::RawField(obj, JSArrayBuffer::kSize),
|
| - HeapObject::RawField(obj, JSArrayBuffer::kSizeWithInternalFields));
|
| -}
|
| -
|
| -
|
| -void JSArrayBuffer::JSArrayBufferIterateBody(HeapObject* obj,
|
| - ObjectVisitor* v) {
|
| - v->VisitPointers(
|
| - HeapObject::RawField(obj, JSArrayBuffer::BodyDescriptor::kStartOffset),
|
| - HeapObject::RawField(obj,
|
| - JSArrayBuffer::kByteLengthOffset + kPointerSize));
|
| - v->VisitPointers(
|
| - HeapObject::RawField(obj, JSArrayBuffer::kSize),
|
| - HeapObject::RawField(obj, JSArrayBuffer::kSizeWithInternalFields));
|
| -}
|
| -
|
| -
|
| Object* JSArrayBufferView::byte_offset() const {
|
| if (WasNeutered()) return Smi::FromInt(0);
|
| return Object::cast(READ_FIELD(this, kByteOffsetOffset));
|
| @@ -7842,189 +7796,6 @@ Relocatable::~Relocatable() {
|
| }
|
|
|
|
|
| -// static
|
| -template <int start_offset>
|
| -int FlexibleBodyDescriptor<start_offset>::SizeOf(Map* map, HeapObject* object) {
|
| - return map->instance_size();
|
| -}
|
| -
|
| -
|
| -// static
|
| -int FixedArray::BodyDescriptor::SizeOf(Map* map, HeapObject* object) {
|
| - return SizeFor(reinterpret_cast<FixedArray*>(object)->synchronized_length());
|
| -}
|
| -
|
| -
|
| -void Foreign::ForeignIterateBody(ObjectVisitor* v) {
|
| - v->VisitExternalReference(
|
| - reinterpret_cast<Address*>(FIELD_ADDR(this, kForeignAddressOffset)));
|
| -}
|
| -
|
| -
|
| -template<typename StaticVisitor>
|
| -void Foreign::ForeignIterateBody() {
|
| - StaticVisitor::VisitExternalReference(
|
| - reinterpret_cast<Address*>(FIELD_ADDR(this, kForeignAddressOffset)));
|
| -}
|
| -
|
| -
|
| -void FixedTypedArrayBase::FixedTypedArrayBaseIterateBody(ObjectVisitor* v) {
|
| - v->VisitPointer(
|
| - reinterpret_cast<Object**>(FIELD_ADDR(this, kBasePointerOffset)));
|
| -}
|
| -
|
| -
|
| -template <typename StaticVisitor>
|
| -void FixedTypedArrayBase::FixedTypedArrayBaseIterateBody() {
|
| - StaticVisitor::VisitPointer(
|
| - reinterpret_cast<Object**>(FIELD_ADDR(this, kBasePointerOffset)));
|
| -}
|
| -
|
| -
|
| -void ExternalOneByteString::ExternalOneByteStringIterateBody(ObjectVisitor* v) {
|
| - typedef v8::String::ExternalOneByteStringResource Resource;
|
| - v->VisitExternalOneByteString(
|
| - reinterpret_cast<Resource**>(FIELD_ADDR(this, kResourceOffset)));
|
| -}
|
| -
|
| -
|
| -template <typename StaticVisitor>
|
| -void ExternalOneByteString::ExternalOneByteStringIterateBody() {
|
| - typedef v8::String::ExternalOneByteStringResource Resource;
|
| - StaticVisitor::VisitExternalOneByteString(
|
| - reinterpret_cast<Resource**>(FIELD_ADDR(this, kResourceOffset)));
|
| -}
|
| -
|
| -
|
| -void ExternalTwoByteString::ExternalTwoByteStringIterateBody(ObjectVisitor* v) {
|
| - typedef v8::String::ExternalStringResource Resource;
|
| - v->VisitExternalTwoByteString(
|
| - reinterpret_cast<Resource**>(FIELD_ADDR(this, kResourceOffset)));
|
| -}
|
| -
|
| -
|
| -template<typename StaticVisitor>
|
| -void ExternalTwoByteString::ExternalTwoByteStringIterateBody() {
|
| - typedef v8::String::ExternalStringResource Resource;
|
| - StaticVisitor::VisitExternalTwoByteString(
|
| - reinterpret_cast<Resource**>(FIELD_ADDR(this, kResourceOffset)));
|
| -}
|
| -
|
| -
|
| -void BodyDescriptorBase::IterateBodyImpl(HeapObject* obj, int start_offset,
|
| - int end_offset, ObjectVisitor* v) {
|
| - if (!FLAG_unbox_double_fields || obj->map()->HasFastPointerLayout()) {
|
| - IteratePointers(obj, start_offset, end_offset, v);
|
| - } else {
|
| - DCHECK(FLAG_unbox_double_fields);
|
| - DCHECK(IsAligned(start_offset, kPointerSize) &&
|
| - IsAligned(end_offset, kPointerSize));
|
| -
|
| - LayoutDescriptorHelper helper(obj->map());
|
| - DCHECK(!helper.all_fields_tagged());
|
| - for (int offset = start_offset; offset < end_offset;) {
|
| - int end_of_region_offset;
|
| - if (helper.IsTagged(offset, end_offset, &end_of_region_offset)) {
|
| - IteratePointers(obj, offset, end_of_region_offset, v);
|
| - }
|
| - offset = end_of_region_offset;
|
| - }
|
| - }
|
| -}
|
| -
|
| -
|
| -template <typename StaticVisitor>
|
| -void BodyDescriptorBase::IterateBodyImpl(Heap* heap, HeapObject* obj,
|
| - int start_offset, int end_offset) {
|
| - if (!FLAG_unbox_double_fields || obj->map()->HasFastPointerLayout()) {
|
| - IteratePointers<StaticVisitor>(heap, obj, start_offset, end_offset);
|
| - } else {
|
| - DCHECK(FLAG_unbox_double_fields);
|
| - DCHECK(IsAligned(start_offset, kPointerSize) &&
|
| - IsAligned(end_offset, kPointerSize));
|
| -
|
| - LayoutDescriptorHelper helper(obj->map());
|
| - DCHECK(!helper.all_fields_tagged());
|
| - for (int offset = start_offset; offset < end_offset;) {
|
| - int end_of_region_offset;
|
| - if (helper.IsTagged(offset, end_offset, &end_of_region_offset)) {
|
| - IteratePointers<StaticVisitor>(heap, obj, offset, end_of_region_offset);
|
| - }
|
| - offset = end_of_region_offset;
|
| - }
|
| - }
|
| -}
|
| -
|
| -
|
| -void BodyDescriptorBase::IteratePointers(HeapObject* obj, int start_offset,
|
| - int end_offset, ObjectVisitor* v) {
|
| - v->VisitPointers(HeapObject::RawField(obj, start_offset),
|
| - HeapObject::RawField(obj, end_offset));
|
| -}
|
| -
|
| -
|
| -template <typename StaticVisitor>
|
| -void BodyDescriptorBase::IteratePointers(Heap* heap, HeapObject* obj,
|
| - int start_offset, int end_offset) {
|
| - StaticVisitor::VisitPointers(heap, obj,
|
| - HeapObject::RawField(obj, start_offset),
|
| - HeapObject::RawField(obj, end_offset));
|
| -}
|
| -
|
| -
|
| -// Iterates the function object according to the visiting policy.
|
| -template <JSFunction::BodyVisitingPolicy body_visiting_policy>
|
| -class JSFunction::BodyDescriptorImpl : public BodyDescriptorBase {
|
| - public:
|
| - STATIC_ASSERT(kNonWeakFieldsEndOffset == kCodeEntryOffset);
|
| - STATIC_ASSERT(kCodeEntryOffset + kPointerSize == kNextFunctionLinkOffset);
|
| - STATIC_ASSERT(kNextFunctionLinkOffset + kPointerSize == kSize);
|
| -
|
| - static inline void IterateBody(HeapObject* obj, int object_size,
|
| - ObjectVisitor* v) {
|
| - IteratePointers(obj, kPropertiesOffset, kNonWeakFieldsEndOffset, v);
|
| -
|
| - if (body_visiting_policy & kVisitCodeEntry) {
|
| - v->VisitCodeEntry(obj->address() + kCodeEntryOffset);
|
| - }
|
| -
|
| - if (body_visiting_policy & kVisitNextFunction) {
|
| - IteratePointers(obj, kNextFunctionLinkOffset, kSize, v);
|
| - }
|
| -
|
| - // TODO(ishell): v8:4531, fix when JFunctions are allowed to have in-object
|
| - // properties
|
| - // IterateBodyImpl(obj, kSize, object_size, v);
|
| - }
|
| -
|
| - template <typename StaticVisitor>
|
| - static inline void IterateBody(HeapObject* obj, int object_size) {
|
| - Heap* heap = obj->GetHeap();
|
| - IteratePointers<StaticVisitor>(heap, obj, kPropertiesOffset,
|
| - kNonWeakFieldsEndOffset);
|
| -
|
| - if (body_visiting_policy & kVisitCodeEntry) {
|
| - StaticVisitor::VisitCodeEntry(heap, obj,
|
| - obj->address() + kCodeEntryOffset);
|
| - }
|
| -
|
| - if (body_visiting_policy & kVisitNextFunction) {
|
| - IteratePointers<StaticVisitor>(heap, obj, kNextFunctionLinkOffset, kSize);
|
| - }
|
| -
|
| - // TODO(ishell): v8:4531, fix when JFunctions are allowed to have in-object
|
| - // properties
|
| - // IterateBodyImpl<StaticVisitor>(heap, obj, kSize, object_size);
|
| - }
|
| -
|
| - static inline int SizeOf(Map* map, HeapObject* object) {
|
| - // TODO(ishell): v8:4531, fix when JFunctions are allowed to have in-object
|
| - // properties
|
| - return JSFunction::kSize;
|
| - }
|
| -};
|
| -
|
| -
|
| template<class Derived, class TableType>
|
| Object* OrderedHashTableIterator<Derived, TableType>::CurrentKey() {
|
| TableType* table(TableType::cast(this->table()));
|
|
|