Chromium Code Reviews| 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 #include <map> | 9 #include <map> |
| 10 | 10 |
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 180 V(FixedArray, microtask_queue, MicrotaskQueue) \ | 180 V(FixedArray, microtask_queue, MicrotaskQueue) \ |
| 181 V(TypeFeedbackVector, dummy_vector, DummyVector) \ | 181 V(TypeFeedbackVector, dummy_vector, DummyVector) \ |
| 182 V(FixedArray, detached_contexts, DetachedContexts) \ | 182 V(FixedArray, detached_contexts, DetachedContexts) \ |
| 183 V(ArrayList, retained_maps, RetainedMaps) \ | 183 V(ArrayList, retained_maps, RetainedMaps) \ |
| 184 V(WeakHashTable, weak_object_to_code_table, WeakObjectToCodeTable) \ | 184 V(WeakHashTable, weak_object_to_code_table, WeakObjectToCodeTable) \ |
| 185 V(PropertyCell, array_protector, ArrayProtector) \ | 185 V(PropertyCell, array_protector, ArrayProtector) \ |
| 186 V(PropertyCell, empty_property_cell, EmptyPropertyCell) \ | 186 V(PropertyCell, empty_property_cell, EmptyPropertyCell) \ |
| 187 V(Object, weak_stack_trace_list, WeakStackTraceList) \ | 187 V(Object, weak_stack_trace_list, WeakStackTraceList) \ |
| 188 V(Object, code_stub_context, CodeStubContext) \ | 188 V(Object, code_stub_context, CodeStubContext) \ |
| 189 V(JSObject, code_stub_exports_object, CodeStubExportsObject) \ | 189 V(JSObject, code_stub_exports_object, CodeStubExportsObject) \ |
| 190 V(Object, noscript_shared_function_infos, NoScriptSharedFunctionInfos) \ | |
| 190 V(FixedArray, interpreter_table, InterpreterTable) \ | 191 V(FixedArray, interpreter_table, InterpreterTable) \ |
| 191 V(Map, bytecode_array_map, BytecodeArrayMap) \ | 192 V(Map, bytecode_array_map, BytecodeArrayMap) \ |
| 192 V(BytecodeArray, empty_bytecode_array, EmptyBytecodeArray) | 193 V(BytecodeArray, empty_bytecode_array, EmptyBytecodeArray) |
| 193 | 194 |
| 194 | 195 |
| 195 // Entries in this list are limited to Smis and are not visited during GC. | 196 // Entries in this list are limited to Smis and are not visited during GC. |
| 196 #define SMI_ROOT_LIST(V) \ | 197 #define SMI_ROOT_LIST(V) \ |
| 197 V(Smi, stack_limit, StackLimit) \ | 198 V(Smi, stack_limit, StackLimit) \ |
| 198 V(Smi, real_stack_limit, RealStackLimit) \ | 199 V(Smi, real_stack_limit, RealStackLimit) \ |
| 199 V(Smi, last_script_id, LastScriptId) \ | 200 V(Smi, last_script_id, LastScriptId) \ |
| (...skipping 613 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 813 bool CanExpandOldGeneration(int size) { | 814 bool CanExpandOldGeneration(int size) { |
| 814 return (CommittedOldGenerationMemory() + size) < MaxOldGenerationSize(); | 815 return (CommittedOldGenerationMemory() + size) < MaxOldGenerationSize(); |
| 815 } | 816 } |
| 816 | 817 |
| 817 // Clear the Instanceof cache (used when a prototype changes). | 818 // Clear the Instanceof cache (used when a prototype changes). |
| 818 inline void ClearInstanceofCache(); | 819 inline void ClearInstanceofCache(); |
| 819 | 820 |
| 820 // Iterates the whole code space to clear all keyed store ICs. | 821 // Iterates the whole code space to clear all keyed store ICs. |
| 821 void ClearAllKeyedStoreICs(); | 822 void ClearAllKeyedStoreICs(); |
| 822 | 823 |
| 824 inline void UpdateNoScriptSharedFunctionInfos(Object* object); | |
|
Michael Starzinger
2015/10/27 09:45:51
This is a root-set setter, please move it into "Ro
mvstanton
2015/10/27 10:58:24
Done.
| |
| 825 | |
| 823 // FreeSpace objects have a null map after deserialization. Update the map. | 826 // FreeSpace objects have a null map after deserialization. Update the map. |
| 824 void RepairFreeListsAfterDeserialization(); | 827 void RepairFreeListsAfterDeserialization(); |
| 825 | 828 |
| 826 // Move len elements within a given array from src_index index to dst_index | 829 // Move len elements within a given array from src_index index to dst_index |
| 827 // index. | 830 // index. |
| 828 void MoveElements(FixedArray* array, int dst_index, int src_index, int len); | 831 void MoveElements(FixedArray* array, int dst_index, int src_index, int len); |
| 829 | 832 |
| 830 // Initialize a filler object to keep the ability to iterate over the heap | 833 // Initialize a filler object to keep the ability to iterate over the heap |
| 831 // when introducing gaps within pages. | 834 // when introducing gaps within pages. |
| 832 void CreateFillerObjectAt(Address addr, int size); | 835 void CreateFillerObjectAt(Address addr, int size); |
| (...skipping 1902 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2735 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. | 2738 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. |
| 2736 | 2739 |
| 2737 private: | 2740 private: |
| 2738 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 2741 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); |
| 2739 }; | 2742 }; |
| 2740 #endif // DEBUG | 2743 #endif // DEBUG |
| 2741 } // namespace internal | 2744 } // namespace internal |
| 2742 } // namespace v8 | 2745 } // namespace v8 |
| 2743 | 2746 |
| 2744 #endif // V8_HEAP_HEAP_H_ | 2747 #endif // V8_HEAP_HEAP_H_ |
| OLD | NEW |