| 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 #ifndef V8_HEAP_HEAP_H_ | 5 #ifndef V8_HEAP_HEAP_H_ | 
| 6 #define V8_HEAP_HEAP_H_ | 6 #define V8_HEAP_HEAP_H_ | 
| 7 | 7 | 
| 8 #include <cmath> | 8 #include <cmath> | 
| 9 | 9 | 
| 10 #include "src/allocation.h" | 10 #include "src/allocation.h" | 
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 45   V(Map, meta_map, MetaMap)                                                    \ | 45   V(Map, meta_map, MetaMap)                                                    \ | 
| 46   V(Map, heap_number_map, HeapNumberMap)                                       \ | 46   V(Map, heap_number_map, HeapNumberMap)                                       \ | 
| 47   V(Map, mutable_heap_number_map, MutableHeapNumberMap)                        \ | 47   V(Map, mutable_heap_number_map, MutableHeapNumberMap)                        \ | 
| 48   V(Map, native_context_map, NativeContextMap)                                 \ | 48   V(Map, native_context_map, NativeContextMap)                                 \ | 
| 49   V(Map, fixed_array_map, FixedArrayMap)                                       \ | 49   V(Map, fixed_array_map, FixedArrayMap)                                       \ | 
| 50   V(Map, code_map, CodeMap)                                                    \ | 50   V(Map, code_map, CodeMap)                                                    \ | 
| 51   V(Map, scope_info_map, ScopeInfoMap)                                         \ | 51   V(Map, scope_info_map, ScopeInfoMap)                                         \ | 
| 52   V(Map, fixed_cow_array_map, FixedCOWArrayMap)                                \ | 52   V(Map, fixed_cow_array_map, FixedCOWArrayMap)                                \ | 
| 53   V(Map, fixed_double_array_map, FixedDoubleArrayMap)                          \ | 53   V(Map, fixed_double_array_map, FixedDoubleArrayMap)                          \ | 
| 54   V(Map, constant_pool_array_map, ConstantPoolArrayMap)                        \ | 54   V(Map, constant_pool_array_map, ConstantPoolArrayMap)                        \ | 
|  | 55   V(Map, weak_cell_map, WeakCellMap)                                           \ | 
| 55   V(Oddball, no_interceptor_result_sentinel, NoInterceptorResultSentinel)      \ | 56   V(Oddball, no_interceptor_result_sentinel, NoInterceptorResultSentinel)      \ | 
| 56   V(Map, hash_table_map, HashTableMap)                                         \ | 57   V(Map, hash_table_map, HashTableMap)                                         \ | 
| 57   V(Map, ordered_hash_table_map, OrderedHashTableMap)                          \ | 58   V(Map, ordered_hash_table_map, OrderedHashTableMap)                          \ | 
| 58   V(FixedArray, empty_fixed_array, EmptyFixedArray)                            \ | 59   V(FixedArray, empty_fixed_array, EmptyFixedArray)                            \ | 
| 59   V(ByteArray, empty_byte_array, EmptyByteArray)                               \ | 60   V(ByteArray, empty_byte_array, EmptyByteArray)                               \ | 
| 60   V(DescriptorArray, empty_descriptor_array, EmptyDescriptorArray)             \ | 61   V(DescriptorArray, empty_descriptor_array, EmptyDescriptorArray)             \ | 
| 61   V(ConstantPoolArray, empty_constant_pool_array, EmptyConstantPoolArray)      \ | 62   V(ConstantPoolArray, empty_constant_pool_array, EmptyConstantPoolArray)      \ | 
| 62   V(Oddball, arguments_marker, ArgumentsMarker)                                \ | 63   V(Oddball, arguments_marker, ArgumentsMarker)                                \ | 
| 63   /* The roots above this line should be boring from a GC point of view.    */ \ | 64   /* The roots above this line should be boring from a GC point of view.    */ \ | 
| 64   /* This means they are never in new space and never on a page that is     */ \ | 65   /* This means they are never in new space and never on a page that is     */ \ | 
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 216   V(meta_map)                           \ | 217   V(meta_map)                           \ | 
| 217   V(heap_number_map)                    \ | 218   V(heap_number_map)                    \ | 
| 218   V(mutable_heap_number_map)            \ | 219   V(mutable_heap_number_map)            \ | 
| 219   V(native_context_map)                 \ | 220   V(native_context_map)                 \ | 
| 220   V(fixed_array_map)                    \ | 221   V(fixed_array_map)                    \ | 
| 221   V(code_map)                           \ | 222   V(code_map)                           \ | 
| 222   V(scope_info_map)                     \ | 223   V(scope_info_map)                     \ | 
| 223   V(fixed_cow_array_map)                \ | 224   V(fixed_cow_array_map)                \ | 
| 224   V(fixed_double_array_map)             \ | 225   V(fixed_double_array_map)             \ | 
| 225   V(constant_pool_array_map)            \ | 226   V(constant_pool_array_map)            \ | 
|  | 227   V(weak_cell_map)                      \ | 
| 226   V(no_interceptor_result_sentinel)     \ | 228   V(no_interceptor_result_sentinel)     \ | 
| 227   V(hash_table_map)                     \ | 229   V(hash_table_map)                     \ | 
| 228   V(ordered_hash_table_map)             \ | 230   V(ordered_hash_table_map)             \ | 
| 229   V(empty_fixed_array)                  \ | 231   V(empty_fixed_array)                  \ | 
| 230   V(empty_byte_array)                   \ | 232   V(empty_byte_array)                   \ | 
| 231   V(empty_descriptor_array)             \ | 233   V(empty_descriptor_array)             \ | 
| 232   V(empty_constant_pool_array)          \ | 234   V(empty_constant_pool_array)          \ | 
| 233   V(arguments_marker)                   \ | 235   V(arguments_marker)                   \ | 
| 234   V(symbol_map)                         \ | 236   V(symbol_map)                         \ | 
| 235   V(sloppy_arguments_elements_map)      \ | 237   V(sloppy_arguments_elements_map)      \ | 
| (...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 822 | 824 | 
| 823   Object* weak_object_to_code_table() { return weak_object_to_code_table_; } | 825   Object* weak_object_to_code_table() { return weak_object_to_code_table_; } | 
| 824 | 826 | 
| 825   void set_encountered_weak_collections(Object* weak_collection) { | 827   void set_encountered_weak_collections(Object* weak_collection) { | 
| 826     encountered_weak_collections_ = weak_collection; | 828     encountered_weak_collections_ = weak_collection; | 
| 827   } | 829   } | 
| 828   Object* encountered_weak_collections() const { | 830   Object* encountered_weak_collections() const { | 
| 829     return encountered_weak_collections_; | 831     return encountered_weak_collections_; | 
| 830   } | 832   } | 
| 831 | 833 | 
|  | 834   void set_encountered_weak_cells(Object* weak_cell) { | 
|  | 835     encountered_weak_cells_ = weak_cell; | 
|  | 836   } | 
|  | 837   Object* encountered_weak_cells() const { return encountered_weak_cells_; } | 
|  | 838 | 
| 832   // Number of mark-sweeps. | 839   // Number of mark-sweeps. | 
| 833   unsigned int ms_count() { return ms_count_; } | 840   unsigned int ms_count() { return ms_count_; } | 
| 834 | 841 | 
| 835   // Iterates over all roots in the heap. | 842   // Iterates over all roots in the heap. | 
| 836   void IterateRoots(ObjectVisitor* v, VisitMode mode); | 843   void IterateRoots(ObjectVisitor* v, VisitMode mode); | 
| 837   // Iterates over all strong roots in the heap. | 844   // Iterates over all strong roots in the heap. | 
| 838   void IterateStrongRoots(ObjectVisitor* v, VisitMode mode); | 845   void IterateStrongRoots(ObjectVisitor* v, VisitMode mode); | 
| 839   // Iterates over entries in the smi roots list.  Only interesting to the | 846   // Iterates over entries in the smi roots list.  Only interesting to the | 
| 840   // serializer/deserializer, since GC does not care about smis. | 847   // serializer/deserializer, since GC does not care about smis. | 
| 841   void IterateSmiRoots(ObjectVisitor* v); | 848   void IterateSmiRoots(ObjectVisitor* v); | 
| (...skipping 710 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1552   // WeakHashTable that maps objects embedded in optimized code to dependent | 1559   // WeakHashTable that maps objects embedded in optimized code to dependent | 
| 1553   // code list. It is initilized lazily and contains the undefined_value at | 1560   // code list. It is initilized lazily and contains the undefined_value at | 
| 1554   // start. | 1561   // start. | 
| 1555   Object* weak_object_to_code_table_; | 1562   Object* weak_object_to_code_table_; | 
| 1556 | 1563 | 
| 1557   // List of encountered weak collections (JSWeakMap and JSWeakSet) during | 1564   // List of encountered weak collections (JSWeakMap and JSWeakSet) during | 
| 1558   // marking. It is initialized during marking, destroyed after marking and | 1565   // marking. It is initialized during marking, destroyed after marking and | 
| 1559   // contains Smi(0) while marking is not active. | 1566   // contains Smi(0) while marking is not active. | 
| 1560   Object* encountered_weak_collections_; | 1567   Object* encountered_weak_collections_; | 
| 1561 | 1568 | 
|  | 1569   Object* encountered_weak_cells_; | 
|  | 1570 | 
| 1562   StoreBufferRebuilder store_buffer_rebuilder_; | 1571   StoreBufferRebuilder store_buffer_rebuilder_; | 
| 1563 | 1572 | 
| 1564   struct StringTypeTable { | 1573   struct StringTypeTable { | 
| 1565     InstanceType type; | 1574     InstanceType type; | 
| 1566     int size; | 1575     int size; | 
| 1567     RootListIndex index; | 1576     RootListIndex index; | 
| 1568   }; | 1577   }; | 
| 1569 | 1578 | 
| 1570   struct ConstantStringTable { | 1579   struct ConstantStringTable { | 
| 1571     const char* contents; | 1580     const char* contents; | 
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1832 | 1841 | 
| 1833   // Allocate empty constant pool array. | 1842   // Allocate empty constant pool array. | 
| 1834   MUST_USE_RESULT AllocationResult AllocateEmptyConstantPoolArray(); | 1843   MUST_USE_RESULT AllocationResult AllocateEmptyConstantPoolArray(); | 
| 1835 | 1844 | 
| 1836   // Allocate a tenured simple cell. | 1845   // Allocate a tenured simple cell. | 
| 1837   MUST_USE_RESULT AllocationResult AllocateCell(Object* value); | 1846   MUST_USE_RESULT AllocationResult AllocateCell(Object* value); | 
| 1838 | 1847 | 
| 1839   // Allocate a tenured JS global property cell initialized with the hole. | 1848   // Allocate a tenured JS global property cell initialized with the hole. | 
| 1840   MUST_USE_RESULT AllocationResult AllocatePropertyCell(); | 1849   MUST_USE_RESULT AllocationResult AllocatePropertyCell(); | 
| 1841 | 1850 | 
|  | 1851   MUST_USE_RESULT AllocationResult AllocateWeakCell(HeapObject* value); | 
|  | 1852 | 
| 1842   // Allocates a new utility object in the old generation. | 1853   // Allocates a new utility object in the old generation. | 
| 1843   MUST_USE_RESULT AllocationResult AllocateStruct(InstanceType type); | 1854   MUST_USE_RESULT AllocationResult AllocateStruct(InstanceType type); | 
| 1844 | 1855 | 
| 1845   // Allocates a new foreign object. | 1856   // Allocates a new foreign object. | 
| 1846   MUST_USE_RESULT AllocationResult | 1857   MUST_USE_RESULT AllocationResult | 
| 1847       AllocateForeign(Address address, PretenureFlag pretenure = NOT_TENURED); | 1858       AllocateForeign(Address address, PretenureFlag pretenure = NOT_TENURED); | 
| 1848 | 1859 | 
| 1849   MUST_USE_RESULT AllocationResult | 1860   MUST_USE_RESULT AllocationResult | 
| 1850       AllocateCode(int object_size, bool immovable); | 1861       AllocateCode(int object_size, bool immovable); | 
| 1851 | 1862 | 
| (...skipping 668 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2520   DisallowHeapAllocation no_allocation;  // i.e. no gc allowed. | 2531   DisallowHeapAllocation no_allocation;  // i.e. no gc allowed. | 
| 2521 | 2532 | 
| 2522  private: | 2533  private: | 
| 2523   DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 2534   DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 
| 2524 }; | 2535 }; | 
| 2525 #endif  // DEBUG | 2536 #endif  // DEBUG | 
| 2526 } | 2537 } | 
| 2527 }  // namespace v8::internal | 2538 }  // namespace v8::internal | 
| 2528 | 2539 | 
| 2529 #endif  // V8_HEAP_HEAP_H_ | 2540 #endif  // V8_HEAP_HEAP_H_ | 
| OLD | NEW | 
|---|