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 1644 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1655 return (pretenure == TENURED) ? preferred_old_space : NEW_SPACE; | 1655 return (pretenure == TENURED) ? preferred_old_space : NEW_SPACE; |
1656 } | 1656 } |
1657 | 1657 |
1658 // Allocate an uninitialized object. The memory is non-executable if the | 1658 // Allocate an uninitialized object. The memory is non-executable if the |
1659 // hardware and OS allow. This is the single choke-point for allocations | 1659 // hardware and OS allow. This is the single choke-point for allocations |
1660 // performed by the runtime and should not be bypassed (to extend this to | 1660 // performed by the runtime and should not be bypassed (to extend this to |
1661 // inlined allocations, use the Heap::DisableInlineAllocation() support). | 1661 // inlined allocations, use the Heap::DisableInlineAllocation() support). |
1662 MUST_USE_RESULT inline AllocationResult AllocateRaw( | 1662 MUST_USE_RESULT inline AllocationResult AllocateRaw( |
1663 int size_in_bytes, AllocationSpace space, AllocationSpace retry_space); | 1663 int size_in_bytes, AllocationSpace space, AllocationSpace retry_space); |
1664 | 1664 |
| 1665 inline HeapObject* ForceAllocateLargeObject(int size_in_bytes, |
| 1666 Executability executable); |
| 1667 |
1665 // Allocates a heap object based on the map. | 1668 // Allocates a heap object based on the map. |
1666 MUST_USE_RESULT AllocationResult | 1669 MUST_USE_RESULT AllocationResult |
1667 Allocate(Map* map, AllocationSpace space, | 1670 Allocate(Map* map, AllocationSpace space, |
1668 AllocationSite* allocation_site = NULL); | 1671 AllocationSite* allocation_site = NULL); |
1669 | 1672 |
1670 // Allocates a partial map for bootstrapping. | 1673 // Allocates a partial map for bootstrapping. |
1671 MUST_USE_RESULT AllocationResult | 1674 MUST_USE_RESULT AllocationResult |
1672 AllocatePartialMap(InstanceType instance_type, int instance_size); | 1675 AllocatePartialMap(InstanceType instance_type, int instance_size); |
1673 | 1676 |
1674 // Initializes a JSObject based on its map. | 1677 // Initializes a JSObject based on its map. |
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2014 | 2017 |
2015 VisitorDispatchTable<ScavengingCallback> scavenging_visitors_table_; | 2018 VisitorDispatchTable<ScavengingCallback> scavenging_visitors_table_; |
2016 | 2019 |
2017 MemoryChunk* chunks_queued_for_free_; | 2020 MemoryChunk* chunks_queued_for_free_; |
2018 | 2021 |
2019 base::Mutex relocation_mutex_; | 2022 base::Mutex relocation_mutex_; |
2020 | 2023 |
2021 int gc_callbacks_depth_; | 2024 int gc_callbacks_depth_; |
2022 | 2025 |
2023 friend class AlwaysAllocateScope; | 2026 friend class AlwaysAllocateScope; |
| 2027 friend class Deserializer; |
2024 friend class Factory; | 2028 friend class Factory; |
2025 friend class GCCallbacksScope; | 2029 friend class GCCallbacksScope; |
2026 friend class GCTracer; | 2030 friend class GCTracer; |
2027 friend class HeapIterator; | 2031 friend class HeapIterator; |
2028 friend class Isolate; | 2032 friend class Isolate; |
2029 friend class MarkCompactCollector; | 2033 friend class MarkCompactCollector; |
2030 friend class MarkCompactMarkingVisitor; | 2034 friend class MarkCompactMarkingVisitor; |
2031 friend class MapCompact; | 2035 friend class MapCompact; |
2032 #ifdef VERIFY_HEAP | 2036 #ifdef VERIFY_HEAP |
2033 friend class NoWeakObjectVerificationScope; | 2037 friend class NoWeakObjectVerificationScope; |
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2492 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. | 2496 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. |
2493 | 2497 |
2494 private: | 2498 private: |
2495 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 2499 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); |
2496 }; | 2500 }; |
2497 #endif // DEBUG | 2501 #endif // DEBUG |
2498 } | 2502 } |
2499 } // namespace v8::internal | 2503 } // namespace v8::internal |
2500 | 2504 |
2501 #endif // V8_HEAP_HEAP_H_ | 2505 #endif // V8_HEAP_HEAP_H_ |
OLD | NEW |