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

Side by Side Diff: src/heap/heap.cc

Issue 1254623002: Remove ExternalArray, derived types, and element kinds (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: updates Created 5 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/heap/heap.h ('k') | src/heap/objects-visiting.cc » ('j') | 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 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/accessors.h" 7 #include "src/accessors.h"
8 #include "src/api.h" 8 #include "src/api.h"
9 #include "src/base/bits.h" 9 #include "src/base/bits.h"
10 #include "src/base/once.h" 10 #include "src/base/once.h"
(...skipping 2482 matching lines...) Expand 10 before | Expand all | Expand 10 after
2493 2493
2494 static inline void EvacuateFixedTypedArray(Map* map, HeapObject** slot, 2494 static inline void EvacuateFixedTypedArray(Map* map, HeapObject** slot,
2495 HeapObject* object) { 2495 HeapObject* object) {
2496 int object_size = reinterpret_cast<FixedTypedArrayBase*>(object)->size(); 2496 int object_size = reinterpret_cast<FixedTypedArrayBase*>(object)->size();
2497 EvacuateObject<DATA_OBJECT, kWordAligned>(map, slot, object, object_size); 2497 EvacuateObject<DATA_OBJECT, kWordAligned>(map, slot, object, object_size);
2498 2498
2499 MapWord map_word = object->map_word(); 2499 MapWord map_word = object->map_word();
2500 DCHECK(map_word.IsForwardingAddress()); 2500 DCHECK(map_word.IsForwardingAddress());
2501 FixedTypedArrayBase* target = 2501 FixedTypedArrayBase* target =
2502 reinterpret_cast<FixedTypedArrayBase*>(map_word.ToForwardingAddress()); 2502 reinterpret_cast<FixedTypedArrayBase*>(map_word.ToForwardingAddress());
2503 target->set_base_pointer(target, SKIP_WRITE_BARRIER); 2503 if (target->base_pointer() != Smi::FromInt(0))
2504 target->set_base_pointer(target, SKIP_WRITE_BARRIER);
2504 } 2505 }
2505 2506
2506 2507
2507 static inline void EvacuateFixedFloat64Array(Map* map, HeapObject** slot, 2508 static inline void EvacuateFixedFloat64Array(Map* map, HeapObject** slot,
2508 HeapObject* object) { 2509 HeapObject* object) {
2509 int object_size = reinterpret_cast<FixedFloat64Array*>(object)->size(); 2510 int object_size = reinterpret_cast<FixedFloat64Array*>(object)->size();
2510 EvacuateObject<DATA_OBJECT, kDoubleAligned>(map, slot, object, object_size); 2511 EvacuateObject<DATA_OBJECT, kDoubleAligned>(map, slot, object, object_size);
2511 2512
2512 MapWord map_word = object->map_word(); 2513 MapWord map_word = object->map_word();
2513 DCHECK(map_word.IsForwardingAddress()); 2514 DCHECK(map_word.IsForwardingAddress());
2514 FixedTypedArrayBase* target = 2515 FixedTypedArrayBase* target =
2515 reinterpret_cast<FixedTypedArrayBase*>(map_word.ToForwardingAddress()); 2516 reinterpret_cast<FixedTypedArrayBase*>(map_word.ToForwardingAddress());
2516 target->set_base_pointer(target, SKIP_WRITE_BARRIER); 2517 if (target->base_pointer() != Smi::FromInt(0))
2518 target->set_base_pointer(target, SKIP_WRITE_BARRIER);
2517 } 2519 }
2518 2520
2519 2521
2520 static inline void EvacuateJSArrayBuffer(Map* map, HeapObject** slot, 2522 static inline void EvacuateJSArrayBuffer(Map* map, HeapObject** slot,
2521 HeapObject* object) { 2523 HeapObject* object) {
2522 ObjectEvacuationStrategy<POINTER_OBJECT>::Visit(map, slot, object); 2524 ObjectEvacuationStrategy<POINTER_OBJECT>::Visit(map, slot, object);
2523 2525
2524 Heap* heap = map->GetHeap(); 2526 Heap* heap = map->GetHeap();
2525 MapWord map_word = object->map_word(); 2527 MapWord map_word = object->map_word();
2526 DCHECK(map_word.IsForwardingAddress()); 2528 DCHECK(map_word.IsForwardingAddress());
(...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after
2996 AllocationResult allocation = AllocateMap(EXTERNAL_ONE_BYTE_STRING_TYPE, 2998 AllocationResult allocation = AllocateMap(EXTERNAL_ONE_BYTE_STRING_TYPE,
2997 ExternalOneByteString::kSize); 2999 ExternalOneByteString::kSize);
2998 if (!allocation.To(&obj)) return false; 3000 if (!allocation.To(&obj)) return false;
2999 set_native_source_string_map(Map::cast(obj)); 3001 set_native_source_string_map(Map::cast(obj));
3000 } 3002 }
3001 3003
3002 ALLOCATE_VARSIZE_MAP(FIXED_DOUBLE_ARRAY_TYPE, fixed_double_array) 3004 ALLOCATE_VARSIZE_MAP(FIXED_DOUBLE_ARRAY_TYPE, fixed_double_array)
3003 ALLOCATE_VARSIZE_MAP(BYTE_ARRAY_TYPE, byte_array) 3005 ALLOCATE_VARSIZE_MAP(BYTE_ARRAY_TYPE, byte_array)
3004 ALLOCATE_VARSIZE_MAP(FREE_SPACE_TYPE, free_space) 3006 ALLOCATE_VARSIZE_MAP(FREE_SPACE_TYPE, free_space)
3005 3007
3006 #define ALLOCATE_EXTERNAL_ARRAY_MAP(Type, type, TYPE, ctype, size) \
3007 ALLOCATE_MAP(EXTERNAL_##TYPE##_ARRAY_TYPE, ExternalArray::kSize, \
3008 external_##type##_array)
3009
3010 TYPED_ARRAYS(ALLOCATE_EXTERNAL_ARRAY_MAP)
3011 #undef ALLOCATE_EXTERNAL_ARRAY_MAP
3012
3013 #define ALLOCATE_FIXED_TYPED_ARRAY_MAP(Type, type, TYPE, ctype, size) \ 3008 #define ALLOCATE_FIXED_TYPED_ARRAY_MAP(Type, type, TYPE, ctype, size) \
3014 ALLOCATE_VARSIZE_MAP(FIXED_##TYPE##_ARRAY_TYPE, fixed_##type##_array) 3009 ALLOCATE_VARSIZE_MAP(FIXED_##TYPE##_ARRAY_TYPE, fixed_##type##_array)
3015 3010
3016 TYPED_ARRAYS(ALLOCATE_FIXED_TYPED_ARRAY_MAP) 3011 TYPED_ARRAYS(ALLOCATE_FIXED_TYPED_ARRAY_MAP)
3017 #undef ALLOCATE_FIXED_TYPED_ARRAY_MAP 3012 #undef ALLOCATE_FIXED_TYPED_ARRAY_MAP
3018 3013
3019 ALLOCATE_VARSIZE_MAP(FIXED_ARRAY_TYPE, sloppy_arguments_elements) 3014 ALLOCATE_VARSIZE_MAP(FIXED_ARRAY_TYPE, sloppy_arguments_elements)
3020 3015
3021 ALLOCATE_VARSIZE_MAP(CODE_TYPE, code) 3016 ALLOCATE_VARSIZE_MAP(CODE_TYPE, code)
3022 3017
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
3060 #undef ALLOCATE_MAP 3055 #undef ALLOCATE_MAP
3061 } 3056 }
3062 3057
3063 { // Empty arrays 3058 { // Empty arrays
3064 { 3059 {
3065 ByteArray* byte_array; 3060 ByteArray* byte_array;
3066 if (!AllocateByteArray(0, TENURED).To(&byte_array)) return false; 3061 if (!AllocateByteArray(0, TENURED).To(&byte_array)) return false;
3067 set_empty_byte_array(byte_array); 3062 set_empty_byte_array(byte_array);
3068 } 3063 }
3069 3064
3070 #define ALLOCATE_EMPTY_EXTERNAL_ARRAY(Type, type, TYPE, ctype, size) \
3071 { \
3072 ExternalArray* obj; \
3073 if (!AllocateEmptyExternalArray(kExternal##Type##Array).To(&obj)) \
3074 return false; \
3075 set_empty_external_##type##_array(obj); \
3076 }
3077
3078 TYPED_ARRAYS(ALLOCATE_EMPTY_EXTERNAL_ARRAY)
3079 #undef ALLOCATE_EMPTY_EXTERNAL_ARRAY
3080
3081 #define ALLOCATE_EMPTY_FIXED_TYPED_ARRAY(Type, type, TYPE, ctype, size) \ 3065 #define ALLOCATE_EMPTY_FIXED_TYPED_ARRAY(Type, type, TYPE, ctype, size) \
3082 { \ 3066 { \
3083 FixedTypedArrayBase* obj; \ 3067 FixedTypedArrayBase* obj; \
3084 if (!AllocateEmptyFixedTypedArray(kExternal##Type##Array).To(&obj)) \ 3068 if (!AllocateEmptyFixedTypedArray(kExternal##Type##Array).To(&obj)) \
3085 return false; \ 3069 return false; \
3086 set_empty_fixed_##type##_array(obj); \ 3070 set_empty_fixed_##type##_array(obj); \
3087 } 3071 }
3088 3072
3089 TYPED_ARRAYS(ALLOCATE_EMPTY_FIXED_TYPED_ARRAY) 3073 TYPED_ARRAYS(ALLOCATE_EMPTY_FIXED_TYPED_ARRAY)
3090 #undef ALLOCATE_EMPTY_FIXED_TYPED_ARRAY 3074 #undef ALLOCATE_EMPTY_FIXED_TYPED_ARRAY
(...skipping 592 matching lines...) Expand 10 before | Expand all | Expand 10 after
3683 // releasing an evacuation candidate due to a slots buffer overflow 3667 // releasing an evacuation candidate due to a slots buffer overflow
3684 // results in lost pages. 3668 // results in lost pages.
3685 mark_compact_collector()->RecordSlot(slot, slot, *slot, 3669 mark_compact_collector()->RecordSlot(slot, slot, *slot,
3686 SlotsBuffer::IGNORE_OVERFLOW); 3670 SlotsBuffer::IGNORE_OVERFLOW);
3687 } 3671 }
3688 allocation_sites_scratchpad_length_++; 3672 allocation_sites_scratchpad_length_++;
3689 } 3673 }
3690 } 3674 }
3691 3675
3692 3676
3693 Map* Heap::MapForExternalArrayType(ExternalArrayType array_type) {
3694 return Map::cast(roots_[RootIndexForExternalArrayType(array_type)]);
3695 }
3696
3697
3698 Heap::RootListIndex Heap::RootIndexForExternalArrayType(
3699 ExternalArrayType array_type) {
3700 switch (array_type) {
3701 #define ARRAY_TYPE_TO_ROOT_INDEX(Type, type, TYPE, ctype, size) \
3702 case kExternal##Type##Array: \
3703 return kExternal##Type##ArrayMapRootIndex;
3704
3705 TYPED_ARRAYS(ARRAY_TYPE_TO_ROOT_INDEX)
3706 #undef ARRAY_TYPE_TO_ROOT_INDEX
3707
3708 default:
3709 UNREACHABLE();
3710 return kUndefinedValueRootIndex;
3711 }
3712 }
3713
3714 3677
3715 Map* Heap::MapForFixedTypedArray(ExternalArrayType array_type) { 3678 Map* Heap::MapForFixedTypedArray(ExternalArrayType array_type) {
3716 return Map::cast(roots_[RootIndexForFixedTypedArray(array_type)]); 3679 return Map::cast(roots_[RootIndexForFixedTypedArray(array_type)]);
3717 } 3680 }
3718 3681
3719 3682
3720 Heap::RootListIndex Heap::RootIndexForFixedTypedArray( 3683 Heap::RootListIndex Heap::RootIndexForFixedTypedArray(
3721 ExternalArrayType array_type) { 3684 ExternalArrayType array_type) {
3722 switch (array_type) { 3685 switch (array_type) {
3723 #define ARRAY_TYPE_TO_ROOT_INDEX(Type, type, TYPE, ctype, size) \ 3686 #define ARRAY_TYPE_TO_ROOT_INDEX(Type, type, TYPE, ctype, size) \
3724 case kExternal##Type##Array: \ 3687 case kExternal##Type##Array: \
3725 return kFixed##Type##ArrayMapRootIndex; 3688 return kFixed##Type##ArrayMapRootIndex;
3726 3689
3727 TYPED_ARRAYS(ARRAY_TYPE_TO_ROOT_INDEX) 3690 TYPED_ARRAYS(ARRAY_TYPE_TO_ROOT_INDEX)
3728 #undef ARRAY_TYPE_TO_ROOT_INDEX 3691 #undef ARRAY_TYPE_TO_ROOT_INDEX
3729 3692
3730 default: 3693 default:
3731 UNREACHABLE(); 3694 UNREACHABLE();
3732 return kUndefinedValueRootIndex; 3695 return kUndefinedValueRootIndex;
3733 } 3696 }
3734 } 3697 }
3735 3698
3736 3699
3737 Heap::RootListIndex Heap::RootIndexForEmptyExternalArray(
3738 ElementsKind elementsKind) {
3739 switch (elementsKind) {
3740 #define ELEMENT_KIND_TO_ROOT_INDEX(Type, type, TYPE, ctype, size) \
3741 case EXTERNAL_##TYPE##_ELEMENTS: \
3742 return kEmptyExternal##Type##ArrayRootIndex;
3743
3744 TYPED_ARRAYS(ELEMENT_KIND_TO_ROOT_INDEX)
3745 #undef ELEMENT_KIND_TO_ROOT_INDEX
3746
3747 default:
3748 UNREACHABLE();
3749 return kUndefinedValueRootIndex;
3750 }
3751 }
3752
3753
3754 Heap::RootListIndex Heap::RootIndexForEmptyFixedTypedArray( 3700 Heap::RootListIndex Heap::RootIndexForEmptyFixedTypedArray(
3755 ElementsKind elementsKind) { 3701 ElementsKind elementsKind) {
3756 switch (elementsKind) { 3702 switch (elementsKind) {
3757 #define ELEMENT_KIND_TO_ROOT_INDEX(Type, type, TYPE, ctype, size) \ 3703 #define ELEMENT_KIND_TO_ROOT_INDEX(Type, type, TYPE, ctype, size) \
3758 case TYPE##_ELEMENTS: \ 3704 case TYPE##_ELEMENTS: \
3759 return kEmptyFixed##Type##ArrayRootIndex; 3705 return kEmptyFixed##Type##ArrayRootIndex;
3760 3706
3761 TYPED_ARRAYS(ELEMENT_KIND_TO_ROOT_INDEX) 3707 TYPED_ARRAYS(ELEMENT_KIND_TO_ROOT_INDEX)
3762 #undef ELEMENT_KIND_TO_ROOT_INDEX 3708 #undef ELEMENT_KIND_TO_ROOT_INDEX
3763 default: 3709 default:
3764 UNREACHABLE(); 3710 UNREACHABLE();
3765 return kUndefinedValueRootIndex; 3711 return kUndefinedValueRootIndex;
3766 } 3712 }
3767 } 3713 }
3768 3714
3769 3715
3770 ExternalArray* Heap::EmptyExternalArrayForMap(Map* map) {
3771 return ExternalArray::cast(
3772 roots_[RootIndexForEmptyExternalArray(map->elements_kind())]);
3773 }
3774
3775
3776 FixedTypedArrayBase* Heap::EmptyFixedTypedArrayForMap(Map* map) { 3716 FixedTypedArrayBase* Heap::EmptyFixedTypedArrayForMap(Map* map) {
3777 return FixedTypedArrayBase::cast( 3717 return FixedTypedArrayBase::cast(
3778 roots_[RootIndexForEmptyFixedTypedArray(map->elements_kind())]); 3718 roots_[RootIndexForEmptyFixedTypedArray(map->elements_kind())]);
3779 } 3719 }
3780 3720
3781 3721
3782 AllocationResult Heap::AllocateForeign(Address address, 3722 AllocationResult Heap::AllocateForeign(Address address,
3783 PretenureFlag pretenure) { 3723 PretenureFlag pretenure) {
3784 // Statically ensure that it is safe to allocate foreigns in paged spaces. 3724 // Statically ensure that it is safe to allocate foreigns in paged spaces.
3785 STATIC_ASSERT(Foreign::kSize <= Page::kMaxRegularHeapObjectSize); 3725 STATIC_ASSERT(Foreign::kSize <= Page::kMaxRegularHeapObjectSize);
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
3966 if (profiler->is_tracking_allocations()) { 3906 if (profiler->is_tracking_allocations()) {
3967 profiler->UpdateObjectSizeEvent(object->address(), object->Size()); 3907 profiler->UpdateObjectSizeEvent(object->address(), object->Size());
3968 } 3908 }
3969 } 3909 }
3970 3910
3971 3911
3972 AllocationResult Heap::AllocateExternalArray(int length, 3912 AllocationResult Heap::AllocateExternalArray(int length,
3973 ExternalArrayType array_type, 3913 ExternalArrayType array_type,
3974 void* external_pointer, 3914 void* external_pointer,
3975 PretenureFlag pretenure) { 3915 PretenureFlag pretenure) {
3976 int size = ExternalArray::kSize; 3916 int size = FixedTypedArrayBase::kHeaderSize;
Hannes Payer (out of office) 2015/07/24 13:40:59 Can we have a kSize?
jochen (gone - plz use gerrit) 2015/07/24 16:04:36 that's misleading, because a fixed array can be on
Hannes Payer (out of office) 2015/07/27 08:40:05 Both sides are misleading. I do not have a strong
jochen (gone - plz use gerrit) 2015/07/27 08:46:16 I'll keep kHeaderSize then :)
3977 AllocationSpace space = SelectSpace(size, pretenure); 3917 AllocationSpace space = SelectSpace(size, pretenure);
3978 HeapObject* result; 3918 HeapObject* result;
3979 { 3919 {
3980 AllocationResult allocation = AllocateRaw(size, space, OLD_SPACE); 3920 AllocationResult allocation = AllocateRaw(size, space, OLD_SPACE);
3981 if (!allocation.To(&result)) return allocation; 3921 if (!allocation.To(&result)) return allocation;
3982 } 3922 }
3983 3923
3984 result->set_map_no_write_barrier(MapForExternalArrayType(array_type)); 3924 result->set_map(MapForFixedTypedArray(array_type));
Hannes Payer (out of office) 2015/07/24 13:40:59 Why not set_map_no_write_barrier?
jochen (gone - plz use gerrit) 2015/07/24 16:04:36 copied from AllocateFixedTypedArray below
Hannes Payer (out of office) 2015/07/27 08:40:05 This is part of the roots_ array. No need for a wr
jochen (gone - plz use gerrit) 2015/07/27 08:46:16 fixed both
3985 ExternalArray::cast(result)->set_length(length); 3925 FixedTypedArrayBase* elements = FixedTypedArrayBase::cast(result);
3986 ExternalArray::cast(result)->set_external_pointer(external_pointer); 3926 elements->set_base_pointer(Smi::FromInt(0), SKIP_WRITE_BARRIER);
3987 return result; 3927 elements->set_external_pointer(external_pointer, SKIP_WRITE_BARRIER);
3928 elements->set_length(length);
3929 return elements;
3988 } 3930 }
3989 3931
3990 static void ForFixedTypedArray(ExternalArrayType array_type, int* element_size, 3932 static void ForFixedTypedArray(ExternalArrayType array_type, int* element_size,
3991 ElementsKind* element_kind) { 3933 ElementsKind* element_kind) {
3992 switch (array_type) { 3934 switch (array_type) {
3993 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \ 3935 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
3994 case kExternal##Type##Array: \ 3936 case kExternal##Type##Array: \
3995 *element_size = size; \ 3937 *element_size = size; \
3996 *element_kind = TYPE##_ELEMENTS; \ 3938 *element_kind = TYPE##_ELEMENTS; \
3997 return; 3939 return;
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
4232 4174
4233 // Allocate the JSObject. 4175 // Allocate the JSObject.
4234 int size = map->instance_size(); 4176 int size = map->instance_size();
4235 AllocationSpace space = SelectSpace(size, pretenure); 4177 AllocationSpace space = SelectSpace(size, pretenure);
4236 JSObject* js_obj; 4178 JSObject* js_obj;
4237 AllocationResult allocation = Allocate(map, space, allocation_site); 4179 AllocationResult allocation = Allocate(map, space, allocation_site);
4238 if (!allocation.To(&js_obj)) return allocation; 4180 if (!allocation.To(&js_obj)) return allocation;
4239 4181
4240 // Initialize the JSObject. 4182 // Initialize the JSObject.
4241 InitializeJSObjectFromMap(js_obj, properties, map); 4183 InitializeJSObjectFromMap(js_obj, properties, map);
4242 DCHECK(js_obj->HasFastElements() || js_obj->HasExternalArrayElements() || 4184 DCHECK(js_obj->HasFastElements() || js_obj->HasFixedTypedArrayElements());
4243 js_obj->HasFixedTypedArrayElements());
4244 return js_obj; 4185 return js_obj;
4245 } 4186 }
4246 4187
4247 4188
4248 AllocationResult Heap::AllocateJSObject(JSFunction* constructor, 4189 AllocationResult Heap::AllocateJSObject(JSFunction* constructor,
4249 PretenureFlag pretenure, 4190 PretenureFlag pretenure,
4250 AllocationSite* allocation_site) { 4191 AllocationSite* allocation_site) {
4251 DCHECK(constructor->has_initial_map()); 4192 DCHECK(constructor->has_initial_map());
4252 4193
4253 // Allocate the object based on the constructors initial map. 4194 // Allocate the object based on the constructors initial map.
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
4525 AllocationResult allocation = AllocateRaw(size, OLD_SPACE, OLD_SPACE); 4466 AllocationResult allocation = AllocateRaw(size, OLD_SPACE, OLD_SPACE);
4526 if (!allocation.To(&result)) return allocation; 4467 if (!allocation.To(&result)) return allocation;
4527 } 4468 }
4528 // Initialize the object. 4469 // Initialize the object.
4529 result->set_map_no_write_barrier(fixed_array_map()); 4470 result->set_map_no_write_barrier(fixed_array_map());
4530 FixedArray::cast(result)->set_length(0); 4471 FixedArray::cast(result)->set_length(0);
4531 return result; 4472 return result;
4532 } 4473 }
4533 4474
4534 4475
4535 AllocationResult Heap::AllocateEmptyExternalArray(
4536 ExternalArrayType array_type) {
4537 return AllocateExternalArray(0, array_type, NULL, TENURED);
4538 }
4539
4540
4541 AllocationResult Heap::CopyAndTenureFixedCOWArray(FixedArray* src) { 4476 AllocationResult Heap::CopyAndTenureFixedCOWArray(FixedArray* src) {
4542 if (!InNewSpace(src)) { 4477 if (!InNewSpace(src)) {
4543 return src; 4478 return src;
4544 } 4479 }
4545 4480
4546 int len = src->length(); 4481 int len = src->length();
4547 HeapObject* obj; 4482 HeapObject* obj;
4548 { 4483 {
4549 AllocationResult allocation = AllocateRawFixedArray(len, TENURED); 4484 AllocationResult allocation = AllocateRawFixedArray(len, TENURED);
4550 if (!allocation.To(&obj)) return allocation; 4485 if (!allocation.To(&obj)) return allocation;
(...skipping 2367 matching lines...) Expand 10 before | Expand all | Expand 10 after
6918 *object_type = "CODE_TYPE"; \ 6853 *object_type = "CODE_TYPE"; \
6919 *object_sub_type = "CODE_AGE/" #name; \ 6854 *object_sub_type = "CODE_AGE/" #name; \
6920 return true; 6855 return true;
6921 CODE_AGE_LIST_COMPLETE(COMPARE_AND_RETURN_NAME) 6856 CODE_AGE_LIST_COMPLETE(COMPARE_AND_RETURN_NAME)
6922 #undef COMPARE_AND_RETURN_NAME 6857 #undef COMPARE_AND_RETURN_NAME
6923 } 6858 }
6924 return false; 6859 return false;
6925 } 6860 }
6926 } // namespace internal 6861 } // namespace internal
6927 } // namespace v8 6862 } // namespace v8
OLDNEW
« no previous file with comments | « src/heap/heap.h ('k') | src/heap/objects-visiting.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698