| 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 |