5#ifndef INCLUDE_CPPGC_HEAP_H_
6#define INCLUDE_CPPGC_HEAP_H_
28class AllocationHandle;
71 kSupportsConservativeStackScan,
76 kNoConservativeStackScan,
96 kIncrementalAndConcurrent
116 kIncrementalAndConcurrent
129 size_t initial_heap_size_bytes = 0;
159 StackSupport stack_support = StackSupport::kSupportsConservativeStackScan;
164 MarkingType marking_support = MarkingType::kIncrementalAndConcurrent;
169 SweepingType sweeping_support = SweepingType::kIncrementalAndConcurrent;
181 std::optional<StackStartMarker> stack_start_marker = std::nullopt;
196 std::shared_ptr<Platform> platform,
211 const char* source,
const char* reason,
212 StackState stack_state = StackState::kMayContainHeapPointers);
229 friend class internal::Heap;
Definition: platform.h:34
Definition: heap-handle.h:21
static std::unique_ptr< Heap > Create(std::shared_ptr< Platform > platform, HeapOptions options=HeapOptions::Default())
MarkingType
Definition: heap.h:82
HeapHandle & GetHeapHandle()
StackSupport
Definition: heap.h:67
SweepingType
Definition: heap.h:102
void ForceGarbageCollectionSlow(const char *source, const char *reason, StackState stack_state=StackState::kMayContainHeapPointers)
AllocationHandle & GetAllocationHandle()
void * stack_start() const
Definition: heap.h:51
StackStartMarker()
Definition: heap.h:49
Definition: allocation.h:39
EmbedderStackState
Definition: common.h:20
std::vector< std::unique_ptr< CustomSpaceBase > > custom_spaces
Definition: heap.h:149
static HeapOptions Default()
Definition: heap.h:142
ResourceConstraints resource_constraints
Definition: heap.h:175
#define V8_EXPORT
Definition: v8config.h:874