| 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 #include "src/heap/heap.h" | 5 #include "src/heap/heap.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/ast/scopeinfo.h" | 9 #include "src/ast/scopeinfo.h" | 
| 10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" | 
| (...skipping 2195 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2206 | 2206 | 
| 2207   {  // Partial map allocation | 2207   {  // Partial map allocation | 
| 2208 #define ALLOCATE_PARTIAL_MAP(instance_type, size, field_name)                \ | 2208 #define ALLOCATE_PARTIAL_MAP(instance_type, size, field_name)                \ | 
| 2209   {                                                                          \ | 2209   {                                                                          \ | 
| 2210     Map* map;                                                                \ | 2210     Map* map;                                                                \ | 
| 2211     if (!AllocatePartialMap((instance_type), (size)).To(&map)) return false; \ | 2211     if (!AllocatePartialMap((instance_type), (size)).To(&map)) return false; \ | 
| 2212     set_##field_name##_map(map);                                             \ | 2212     set_##field_name##_map(map);                                             \ | 
| 2213   } | 2213   } | 
| 2214 | 2214 | 
| 2215     ALLOCATE_PARTIAL_MAP(FIXED_ARRAY_TYPE, kVariableSizeSentinel, fixed_array); | 2215     ALLOCATE_PARTIAL_MAP(FIXED_ARRAY_TYPE, kVariableSizeSentinel, fixed_array); | 
|  | 2216     fixed_array_map()->set_elements_kind(FAST_HOLEY_ELEMENTS); | 
| 2216     ALLOCATE_PARTIAL_MAP(ODDBALL_TYPE, Oddball::kSize, undefined); | 2217     ALLOCATE_PARTIAL_MAP(ODDBALL_TYPE, Oddball::kSize, undefined); | 
| 2217     ALLOCATE_PARTIAL_MAP(ODDBALL_TYPE, Oddball::kSize, null); | 2218     ALLOCATE_PARTIAL_MAP(ODDBALL_TYPE, Oddball::kSize, null); | 
| 2218     ALLOCATE_PARTIAL_MAP(ODDBALL_TYPE, Oddball::kSize, the_hole); | 2219     ALLOCATE_PARTIAL_MAP(ODDBALL_TYPE, Oddball::kSize, the_hole); | 
| 2219 | 2220 | 
| 2220 #undef ALLOCATE_PARTIAL_MAP | 2221 #undef ALLOCATE_PARTIAL_MAP | 
| 2221   } | 2222   } | 
| 2222 | 2223 | 
| 2223   // Allocate the empty array. | 2224   // Allocate the empty array. | 
| 2224   { | 2225   { | 
| 2225     AllocationResult allocation = AllocateEmptyFixedArray(); | 2226     AllocationResult allocation = AllocateEmptyFixedArray(); | 
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2280 | 2281 | 
| 2281 #define ALLOCATE_PRIMITIVE_MAP(instance_type, size, field_name, \ | 2282 #define ALLOCATE_PRIMITIVE_MAP(instance_type, size, field_name, \ | 
| 2282                                constructor_function_index)      \ | 2283                                constructor_function_index)      \ | 
| 2283   {                                                             \ | 2284   {                                                             \ | 
| 2284     ALLOCATE_MAP((instance_type), (size), field_name);          \ | 2285     ALLOCATE_MAP((instance_type), (size), field_name);          \ | 
| 2285     field_name##_map()->SetConstructorFunctionIndex(            \ | 2286     field_name##_map()->SetConstructorFunctionIndex(            \ | 
| 2286         (constructor_function_index));                          \ | 2287         (constructor_function_index));                          \ | 
| 2287   } | 2288   } | 
| 2288 | 2289 | 
| 2289     ALLOCATE_VARSIZE_MAP(FIXED_ARRAY_TYPE, fixed_cow_array) | 2290     ALLOCATE_VARSIZE_MAP(FIXED_ARRAY_TYPE, fixed_cow_array) | 
| 2290     DCHECK(fixed_array_map() != fixed_cow_array_map()); | 2291     fixed_cow_array_map()->set_elements_kind(FAST_HOLEY_ELEMENTS); | 
|  | 2292     DCHECK_NE(fixed_array_map(), fixed_cow_array_map()); | 
| 2291 | 2293 | 
| 2292     ALLOCATE_VARSIZE_MAP(FIXED_ARRAY_TYPE, scope_info) | 2294     ALLOCATE_VARSIZE_MAP(FIXED_ARRAY_TYPE, scope_info) | 
| 2293     ALLOCATE_PRIMITIVE_MAP(HEAP_NUMBER_TYPE, HeapNumber::kSize, heap_number, | 2295     ALLOCATE_PRIMITIVE_MAP(HEAP_NUMBER_TYPE, HeapNumber::kSize, heap_number, | 
| 2294                            Context::NUMBER_FUNCTION_INDEX) | 2296                            Context::NUMBER_FUNCTION_INDEX) | 
| 2295     ALLOCATE_MAP(MUTABLE_HEAP_NUMBER_TYPE, HeapNumber::kSize, | 2297     ALLOCATE_MAP(MUTABLE_HEAP_NUMBER_TYPE, HeapNumber::kSize, | 
| 2296                  mutable_heap_number) | 2298                  mutable_heap_number) | 
| 2297     ALLOCATE_PRIMITIVE_MAP(SYMBOL_TYPE, Symbol::kSize, symbol, | 2299     ALLOCATE_PRIMITIVE_MAP(SYMBOL_TYPE, Symbol::kSize, symbol, | 
| 2298                            Context::SYMBOL_FUNCTION_INDEX) | 2300                            Context::SYMBOL_FUNCTION_INDEX) | 
| 2299 #define ALLOCATE_SIMD128_MAP(TYPE, Type, type, lane_count, lane_type) \ | 2301 #define ALLOCATE_SIMD128_MAP(TYPE, Type, type, lane_count, lane_type) \ | 
| 2300   ALLOCATE_PRIMITIVE_MAP(SIMD128_VALUE_TYPE, Type::kSize, type,       \ | 2302   ALLOCATE_PRIMITIVE_MAP(SIMD128_VALUE_TYPE, Type::kSize, type,       \ | 
| (...skipping 28 matching lines...) Expand all  Loading... | 
| 2329     {  // Create a separate external one byte string map for native sources. | 2331     {  // Create a separate external one byte string map for native sources. | 
| 2330       AllocationResult allocation = AllocateMap(EXTERNAL_ONE_BYTE_STRING_TYPE, | 2332       AllocationResult allocation = AllocateMap(EXTERNAL_ONE_BYTE_STRING_TYPE, | 
| 2331                                                 ExternalOneByteString::kSize); | 2333                                                 ExternalOneByteString::kSize); | 
| 2332       if (!allocation.To(&obj)) return false; | 2334       if (!allocation.To(&obj)) return false; | 
| 2333       Map* map = Map::cast(obj); | 2335       Map* map = Map::cast(obj); | 
| 2334       map->SetConstructorFunctionIndex(Context::STRING_FUNCTION_INDEX); | 2336       map->SetConstructorFunctionIndex(Context::STRING_FUNCTION_INDEX); | 
| 2335       set_native_source_string_map(map); | 2337       set_native_source_string_map(map); | 
| 2336     } | 2338     } | 
| 2337 | 2339 | 
| 2338     ALLOCATE_VARSIZE_MAP(FIXED_DOUBLE_ARRAY_TYPE, fixed_double_array) | 2340     ALLOCATE_VARSIZE_MAP(FIXED_DOUBLE_ARRAY_TYPE, fixed_double_array) | 
|  | 2341     fixed_double_array_map()->set_elements_kind(FAST_HOLEY_DOUBLE_ELEMENTS); | 
| 2339     ALLOCATE_VARSIZE_MAP(BYTE_ARRAY_TYPE, byte_array) | 2342     ALLOCATE_VARSIZE_MAP(BYTE_ARRAY_TYPE, byte_array) | 
| 2340     ALLOCATE_VARSIZE_MAP(BYTECODE_ARRAY_TYPE, bytecode_array) | 2343     ALLOCATE_VARSIZE_MAP(BYTECODE_ARRAY_TYPE, bytecode_array) | 
| 2341     ALLOCATE_VARSIZE_MAP(FREE_SPACE_TYPE, free_space) | 2344     ALLOCATE_VARSIZE_MAP(FREE_SPACE_TYPE, free_space) | 
| 2342 | 2345 | 
| 2343 #define ALLOCATE_FIXED_TYPED_ARRAY_MAP(Type, type, TYPE, ctype, size) \ | 2346 #define ALLOCATE_FIXED_TYPED_ARRAY_MAP(Type, type, TYPE, ctype, size) \ | 
| 2344   ALLOCATE_VARSIZE_MAP(FIXED_##TYPE##_ARRAY_TYPE, fixed_##type##_array) | 2347   ALLOCATE_VARSIZE_MAP(FIXED_##TYPE##_ARRAY_TYPE, fixed_##type##_array) | 
| 2345 | 2348 | 
| 2346     TYPED_ARRAYS(ALLOCATE_FIXED_TYPED_ARRAY_MAP) | 2349     TYPED_ARRAYS(ALLOCATE_FIXED_TYPED_ARRAY_MAP) | 
| 2347 #undef ALLOCATE_FIXED_TYPED_ARRAY_MAP | 2350 #undef ALLOCATE_FIXED_TYPED_ARRAY_MAP | 
| 2348 | 2351 | 
| (...skipping 4098 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 6447 } | 6450 } | 
| 6448 | 6451 | 
| 6449 | 6452 | 
| 6450 // static | 6453 // static | 
| 6451 int Heap::GetStaticVisitorIdForMap(Map* map) { | 6454 int Heap::GetStaticVisitorIdForMap(Map* map) { | 
| 6452   return StaticVisitorBase::GetVisitorId(map); | 6455   return StaticVisitorBase::GetVisitorId(map); | 
| 6453 } | 6456 } | 
| 6454 | 6457 | 
| 6455 }  // namespace internal | 6458 }  // namespace internal | 
| 6456 }  // namespace v8 | 6459 }  // namespace v8 | 
| OLD | NEW | 
|---|