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

Side by Side Diff: src/objects-inl.h

Issue 2196533003: [api] Cleaning up: Replace NeanderArray with FixedArray implementation (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: mind the pointers Created 4 years, 4 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 unified diff | Download patch
« no previous file with comments | « src/objects.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 734 matching lines...) Expand 10 before | Expand all | Expand 10 after
745 return true; 745 return true;
746 } 746 }
747 747
748 bool HeapObject::IsHandlerTable() const { 748 bool HeapObject::IsHandlerTable() const {
749 if (!IsFixedArray()) return false; 749 if (!IsFixedArray()) return false;
750 // There's actually no way to see the difference between a fixed array and 750 // There's actually no way to see the difference between a fixed array and
751 // a handler table array. 751 // a handler table array.
752 return true; 752 return true;
753 } 753 }
754 754
755 bool HeapObject::IsTemplateList() const {
756 if (!IsFixedArray()) return false;
757 // There's actually no way to see the difference between a fixed array and
758 // a template list.
759 if (FixedArray::cast(this)->length() < 1) return false;
760 return true;
761 }
762
755 bool HeapObject::IsDependentCode() const { 763 bool HeapObject::IsDependentCode() const {
756 if (!IsFixedArray()) return false; 764 if (!IsFixedArray()) return false;
757 // There's actually no way to see the difference between a fixed array and 765 // There's actually no way to see the difference between a fixed array and
758 // a dependent codes array. 766 // a dependent codes array.
759 return true; 767 return true;
760 } 768 }
761 769
762 bool HeapObject::IsContext() const { 770 bool HeapObject::IsContext() const {
763 Map* map = this->map(); 771 Map* map = this->map();
764 Heap* heap = GetHeap(); 772 Heap* heap = GetHeap();
(...skipping 2472 matching lines...) Expand 10 before | Expand all | Expand 10 after
3237 CAST_ACCESSOR(Name) 3245 CAST_ACCESSOR(Name)
3238 CAST_ACCESSOR(NameDictionary) 3246 CAST_ACCESSOR(NameDictionary)
3239 CAST_ACCESSOR(NormalizedMapCache) 3247 CAST_ACCESSOR(NormalizedMapCache)
3240 CAST_ACCESSOR(Object) 3248 CAST_ACCESSOR(Object)
3241 CAST_ACCESSOR(ObjectHashTable) 3249 CAST_ACCESSOR(ObjectHashTable)
3242 CAST_ACCESSOR(ObjectHashSet) 3250 CAST_ACCESSOR(ObjectHashSet)
3243 CAST_ACCESSOR(Oddball) 3251 CAST_ACCESSOR(Oddball)
3244 CAST_ACCESSOR(OrderedHashMap) 3252 CAST_ACCESSOR(OrderedHashMap)
3245 CAST_ACCESSOR(OrderedHashSet) 3253 CAST_ACCESSOR(OrderedHashSet)
3246 CAST_ACCESSOR(PropertyCell) 3254 CAST_ACCESSOR(PropertyCell)
3255 CAST_ACCESSOR(TemplateList)
3247 CAST_ACCESSOR(ScopeInfo) 3256 CAST_ACCESSOR(ScopeInfo)
3248 CAST_ACCESSOR(SeededNumberDictionary) 3257 CAST_ACCESSOR(SeededNumberDictionary)
3249 CAST_ACCESSOR(SeqOneByteString) 3258 CAST_ACCESSOR(SeqOneByteString)
3250 CAST_ACCESSOR(SeqString) 3259 CAST_ACCESSOR(SeqString)
3251 CAST_ACCESSOR(SeqTwoByteString) 3260 CAST_ACCESSOR(SeqTwoByteString)
3252 CAST_ACCESSOR(SharedFunctionInfo) 3261 CAST_ACCESSOR(SharedFunctionInfo)
3253 CAST_ACCESSOR(Simd128Value) 3262 CAST_ACCESSOR(Simd128Value)
3254 CAST_ACCESSOR(SlicedString) 3263 CAST_ACCESSOR(SlicedString)
3255 CAST_ACCESSOR(Smi) 3264 CAST_ACCESSOR(Smi)
3256 CAST_ACCESSOR(String) 3265 CAST_ACCESSOR(String)
(...skipping 2426 matching lines...) Expand 10 before | Expand all | Expand 10 after
5683 kInstanceCallHandlerOffset) 5692 kInstanceCallHandlerOffset)
5684 ACCESSORS(FunctionTemplateInfo, access_check_info, Object, 5693 ACCESSORS(FunctionTemplateInfo, access_check_info, Object,
5685 kAccessCheckInfoOffset) 5694 kAccessCheckInfoOffset)
5686 ACCESSORS(FunctionTemplateInfo, shared_function_info, Object, 5695 ACCESSORS(FunctionTemplateInfo, shared_function_info, Object,
5687 kSharedFunctionInfoOffset) 5696 kSharedFunctionInfoOffset)
5688 5697
5689 SMI_ACCESSORS(FunctionTemplateInfo, flag, kFlagOffset) 5698 SMI_ACCESSORS(FunctionTemplateInfo, flag, kFlagOffset)
5690 5699
5691 ACCESSORS(ObjectTemplateInfo, constructor, Object, kConstructorOffset) 5700 ACCESSORS(ObjectTemplateInfo, constructor, Object, kConstructorOffset)
5692 ACCESSORS(ObjectTemplateInfo, data, Object, kDataOffset) 5701 ACCESSORS(ObjectTemplateInfo, data, Object, kDataOffset)
5702
5693 int ObjectTemplateInfo::internal_field_count() const { 5703 int ObjectTemplateInfo::internal_field_count() const {
5694 Object* value = data(); 5704 Object* value = data();
5695 DCHECK(value->IsSmi()); 5705 DCHECK(value->IsSmi());
5696 return InternalFieldCount::decode(Smi::cast(value)->value()); 5706 return InternalFieldCount::decode(Smi::cast(value)->value());
5697 } 5707 }
5708
5698 void ObjectTemplateInfo::set_internal_field_count(int count) { 5709 void ObjectTemplateInfo::set_internal_field_count(int count) {
5699 return set_data(Smi::FromInt( 5710 return set_data(Smi::FromInt(
5700 InternalFieldCount::update(Smi::cast(data())->value(), count))); 5711 InternalFieldCount::update(Smi::cast(data())->value(), count)));
5701 } 5712 }
5713
5702 bool ObjectTemplateInfo::immutable_proto() const { 5714 bool ObjectTemplateInfo::immutable_proto() const {
5703 Object* value = data(); 5715 Object* value = data();
5704 DCHECK(value->IsSmi()); 5716 DCHECK(value->IsSmi());
5705 return IsImmutablePrototype::decode(Smi::cast(value)->value()); 5717 return IsImmutablePrototype::decode(Smi::cast(value)->value());
5706 } 5718 }
5719
5707 void ObjectTemplateInfo::set_immutable_proto(bool immutable) { 5720 void ObjectTemplateInfo::set_immutable_proto(bool immutable) {
5708 return set_data(Smi::FromInt( 5721 return set_data(Smi::FromInt(
5709 IsImmutablePrototype::update(Smi::cast(data())->value(), immutable))); 5722 IsImmutablePrototype::update(Smi::cast(data())->value(), immutable)));
5710 } 5723 }
5711 5724
5725 int TemplateList::length() const {
5726 return Smi::cast(FixedArray::cast(this)->get(kLengthIndex))->value();
5727 }
5728
5729 Object* TemplateList::get(int index) const {
5730 return FixedArray::cast(this)->get(kFirstElementIndex + index);
5731 }
5732
5733 void TemplateList::set(int index, Object* value) {
5734 FixedArray::cast(this)->set(kFirstElementIndex + index, value);
5735 }
5736
5712 ACCESSORS(AllocationSite, transition_info, Object, kTransitionInfoOffset) 5737 ACCESSORS(AllocationSite, transition_info, Object, kTransitionInfoOffset)
5713 ACCESSORS(AllocationSite, nested_site, Object, kNestedSiteOffset) 5738 ACCESSORS(AllocationSite, nested_site, Object, kNestedSiteOffset)
5714 SMI_ACCESSORS(AllocationSite, pretenure_data, kPretenureDataOffset) 5739 SMI_ACCESSORS(AllocationSite, pretenure_data, kPretenureDataOffset)
5715 SMI_ACCESSORS(AllocationSite, pretenure_create_count, 5740 SMI_ACCESSORS(AllocationSite, pretenure_create_count,
5716 kPretenureCreateCountOffset) 5741 kPretenureCreateCountOffset)
5717 ACCESSORS(AllocationSite, dependent_code, DependentCode, 5742 ACCESSORS(AllocationSite, dependent_code, DependentCode,
5718 kDependentCodeOffset) 5743 kDependentCodeOffset)
5719 ACCESSORS(AllocationSite, weak_next, Object, kWeakNextOffset) 5744 ACCESSORS(AllocationSite, weak_next, Object, kWeakNextOffset)
5720 ACCESSORS(AllocationMemento, allocation_site, Object, kAllocationSiteOffset) 5745 ACCESSORS(AllocationMemento, allocation_site, Object, kAllocationSiteOffset)
5721 5746
(...skipping 2426 matching lines...) Expand 10 before | Expand all | Expand 10 after
8148 #undef WRITE_INT64_FIELD 8173 #undef WRITE_INT64_FIELD
8149 #undef READ_BYTE_FIELD 8174 #undef READ_BYTE_FIELD
8150 #undef WRITE_BYTE_FIELD 8175 #undef WRITE_BYTE_FIELD
8151 #undef NOBARRIER_READ_BYTE_FIELD 8176 #undef NOBARRIER_READ_BYTE_FIELD
8152 #undef NOBARRIER_WRITE_BYTE_FIELD 8177 #undef NOBARRIER_WRITE_BYTE_FIELD
8153 8178
8154 } // namespace internal 8179 } // namespace internal
8155 } // namespace v8 8180 } // namespace v8
8156 8181
8157 #endif // V8_OBJECTS_INL_H_ 8182 #endif // V8_OBJECTS_INL_H_
OLDNEW
« no previous file with comments | « src/objects.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698