Namespaces | |
namespace | internal |
namespace | subtle |
namespace | testing |
Classes | |
struct | AdditionalBytes |
class | CustomSpace |
class | CustomSpaceBase |
struct | CustomSpaceIndex |
class | DefaultPlatform |
struct | EphemeronPair |
class | GarbageCollected |
class | GarbageCollectedMixin |
class | Heap |
class | HeapHandle |
struct | HeapStatistics |
class | LivenessBroker |
class | MakeGarbageCollectedTrait |
class | MakeGarbageCollectedTraitBase |
class | NameProvider |
class | Platform |
struct | PostConstructionCallbackTrait |
class | ProcessHeapStatistics |
struct | SpaceTrait |
struct | TraceDescriptor |
struct | TraceTrait |
struct | TraceTrait< v8::TracedReference< T > > |
class | Visitor |
Enumerations | |
enum class | EmbedderStackState { kMayContainHeapPointers , kNoHeapPointers } |
Functions | |
template<typename T , typename... Args> | |
T * | MakeGarbageCollected (AllocationHandle &handle, Args &&... args) |
template<typename T , typename... Args> | |
T * | MakeGarbageCollected (AllocationHandle &handle, AdditionalBytes additional_bytes, Args &&... args) |
void | InitializeProcess (PageAllocator *page_allocator=nullptr, size_t desired_heap_size=0) |
void | ShutdownProcess () |
Variables | |
constexpr internal::SentinelPointer | kSentinelPointer |
template<typename T > | |
constexpr bool | IsGarbageCollectedMixinTypeV |
template<typename T > | |
constexpr bool | IsGarbageCollectedTypeV |
template<typename T > | |
constexpr bool | IsGarbageCollectedOrMixinTypeV |
template<typename T > | |
constexpr bool | IsGarbageCollectedWithMixinTypeV |
template<typename T > | |
constexpr bool | IsMemberTypeV = internal::IsMemberType<T>::value |
template<typename T > | |
constexpr bool | IsUntracedMemberTypeV = internal::IsUntracedMemberType<T>::value |
template<typename T > | |
constexpr bool | IsWeakMemberTypeV = internal::IsWeakMemberType<T>::value |
template<typename T > | |
constexpr bool | IsWeakV = internal::IsWeak<T>::value |
template<typename T > | |
constexpr bool | IsCompleteV = internal::IsComplete<T>::value |
template<typename T > | |
constexpr bool | IsMemberOrWeakMemberTypeV |
template<typename T > | |
constexpr bool | IsAnyMemberTypeV = internal::IsAnyMemberTypeV<std::decay_t<T>> |
cppgc - A C++ garbage collection library.
using cppgc::IdleTask = typedef v8::IdleTask |
using cppgc::JobDelegate = typedef v8::JobDelegate |
using cppgc::JobHandle = typedef v8::JobHandle |
using cppgc::JobTask = typedef v8::JobTask |
using cppgc::Member = typedef internal::BasicMember< T, internal::StrongMemberTag, internal::DijkstraWriteBarrierPolicy, internal::DefaultMemberCheckingPolicy, internal::DefaultMemberStorage> |
Members are used in classes to contain strong pointers to other garbage collected objects. All Member fields of a class must be traced in the class' trace method.
using cppgc::PageAllocator = typedef v8::PageAllocator |
using cppgc::Persistent = typedef internal::BasicPersistent<T, internal::StrongPersistentPolicy> |
Persistent is a way to create a strong pointer from an off-heap object to another on-heap object. As long as the Persistent handle is alive the GC will keep the object pointed to alive. The Persistent handle is always a GC root from the point of view of the GC. Persistent must be constructed and destructed in the same thread.
using cppgc::SourceLocation = typedef v8::SourceLocation |
using cppgc::Task = typedef v8::Task |
using cppgc::TaskPriority = typedef v8::TaskPriority |
using cppgc::TaskRunner = typedef v8::TaskRunner |
using cppgc::TraceCallback = typedef void (*)(Visitor* visitor, const void* object) |
Callback for invoking tracing on a given object.
visitor | The visitor to dispatch to. |
object | The object to invoke tracing on. |
using cppgc::TraceDescriptorCallback = typedef TraceDescriptor (*)(const void* address) |
Callback for getting a TraceDescriptor for a given address.
address | Possibly inner address of an object. |
using cppgc::TracingController = typedef v8::TracingController |
using cppgc::UntracedMember = typedef internal::BasicMember< T, internal::UntracedMemberTag, internal::NoWriteBarrierPolicy, internal::DefaultMemberCheckingPolicy, internal::DefaultMemberStorage> |
UntracedMember is a pointer to an on-heap object that is not traced for some reason. Do not use this unless you know what you are doing. Keeping raw pointers to on-heap objects is prohibited unless used from stack. Pointee must be kept alive through other means.
using cppgc::WeakCallback = typedef void (*)(const LivenessBroker&, const void*) |
using cppgc::WeakMember = typedef internal::BasicMember< T, internal::WeakMemberTag, internal::DijkstraWriteBarrierPolicy, internal::DefaultMemberCheckingPolicy, internal::DefaultMemberStorage> |
WeakMember is similar to Member in that it is used to point to other garbage collected objects. However instead of creating a strong pointer to the object, the WeakMember creates a weak pointer, which does not keep the pointee alive. Hence if all pointers to to a heap allocated object are weak the object will be garbage collected. At the time of GC the weak pointers will automatically be set to null.
using cppgc::WeakPersistent = typedef internal::BasicPersistent<T, internal::WeakPersistentPolicy> |
WeakPersistent is a way to create a weak pointer from an off-heap object to an on-heap object. The pointer is automatically cleared when the pointee gets collected. WeakPersistent must be constructed and destructed in the same thread.
|
strong |
void cppgc::InitializeProcess | ( | PageAllocator * | page_allocator = nullptr , |
size_t | desired_heap_size = 0 |
||
) |
Process-global initialization of the garbage collector. Must be called before creating a Heap.
Can be called multiple times when paired with ShutdownProcess()
.
page_allocator | The allocator used for maintaining meta data. Must stay always alive and not change between multiple calls to InitializeProcess. If no allocator is provided, a default internal version will be used. |
desired_heap_size | Desired amount of virtual address space to reserve for the heap, in bytes. Actual size will be clamped to minimum and maximum values based on compile-time settings and may be rounded up. If this parameter is zero, a default value will be used. |
|
inline |
Constructs a managed object of type T where T transitively inherits from GarbageCollected. Created objects will have additional bytes appended to it. Allocated memory would suffice for sizeof(T) + additional_bytes
.
additional_bytes | Denotes how many bytes to append to T. |
args | List of arguments with which an instance of T will be constructed. |
|
inline |
Constructs a managed object of type T where T transitively inherits from GarbageCollected.
args | List of arguments with which an instance of T will be constructed. |
void cppgc::ShutdownProcess | ( | ) |
Must be called after destroying the last used heap. Some process-global metadata may not be returned and reused upon a subsequent InitializeProcess()
call.
|
constexpr |
Value is true for any member type.
|
constexpr |
Value is true for types that are complete, and false otherwise.
|
constexpr |
Value is true for types that inherit from GarbageCollectedMixin
but not GarbageCollected<T>
(i.e., they are free mixins), and false otherwise.
|
constexpr |
Value is true for types that inherit from either GarbageCollected<T>
or GarbageCollectedMixin
, and false otherwise.
|
constexpr |
Value is true for types that inherit from GarbageCollected<T>
, and false otherwise.
|
constexpr |
Value is true for types that inherit from GarbageCollected<T>
and GarbageCollectedMixin
, and false otherwise.
|
constexpr |
Value is true for member types Member<T>
and WeakMember<T>
.
|
constexpr |
Value is true for types of type Member<T>
, and false otherwise.
|
constexpr |
Value is true for types of type UntracedMember<T>
, and false otherwise.
|
constexpr |
Value is true for types of type WeakMember<T>
, and false otherwise.
|
constexpr |
Value is true for types that are considered weak references, and false otherwise.
|
constexpr |