v8
9.4.146 (node 16.13.0)
V8 is Google's open source JavaScript engine
|
Data Structures | |
class | HeapConsistency |
class | DisallowGarbageCollectionScope |
class | NoGarbageCollectionScope |
class | HeapState |
struct | ObjectSizeTrait |
struct | ObjectSizeTrait< T, false > |
struct | ObjectSizeTrait< T, true > |
Typedefs | |
template<typename T > | |
using | CrossThreadPersistent = internal::BasicCrossThreadPersistent< T, internal::StrongCrossThreadPersistentPolicy > |
template<typename T > | |
using | WeakCrossThreadPersistent = internal::BasicCrossThreadPersistent< T, internal::WeakCrossThreadPersistentPolicy > |
Functions | |
template<typename T > | |
void | FreeUnreferencedObject (HeapHandle &heap_handle, T &object) |
template<typename T > | |
bool | Resize (T &object, AdditionalBytes additional_bytes) |
using CrossThreadPersistent = internal::BasicCrossThreadPersistent< T, internal::StrongCrossThreadPersistentPolicy> |
DO NOT USE: Has known caveats, see below.
CrossThreadPersistent allows retaining objects from threads other than the thread the owning heap is operating on.
Known caveats:
Definition at line 392 of file cross-thread-persistent.h.
using WeakCrossThreadPersistent = internal::BasicCrossThreadPersistent< T, internal::WeakCrossThreadPersistentPolicy> |
DO NOT USE: Has known caveats, see below.
CrossThreadPersistent allows weakly retaining objects from threads other than the thread the owning heap is operating on.
Known caveats:
Definition at line 407 of file cross-thread-persistent.h.
void cppgc::subtle::FreeUnreferencedObject | ( | HeapHandle & | heap_handle, |
T & | object | ||
) |
Informs the garbage collector that object
can be immediately reclaimed. The destructor may not be invoked immediately but only on next garbage collection.
It is up to the embedder to guarantee that no other object holds a reference to object
after calling FreeUnreferencedObject()
. In case such a reference exists, it's use results in a use-after-free.
To aid in using the API, FreeUnreferencedObject()
may be called from destructors on objects that would be reclaimed in the same garbage collection cycle.
heap_handle | The corresponding heap. |
object | Reference to an object that is of type GarbageCollected and should be immediately reclaimed. |
Definition at line 45 of file explicit-management.h.
References cppgc::internal::FreeUnreferencedObject().
bool cppgc::subtle::Resize | ( | T & | object, |
AdditionalBytes | additional_bytes | ||
) |
Tries to resize object
of type T
with additional bytes on top of sizeof(T). Resizing is only useful with trailing inlined storage, see e.g. MakeGarbageCollected(AllocationHandle&, AdditionalBytes)
.
Resize()
performs growing or shrinking as needed and may skip the operation for internal reasons, see return value.
It is up to the embedder to guarantee that in case of shrinking a larger object down, the reclaimed area is not used anymore. Any subsequent use results in a use-after-free.
The object
must be live when calling Resize()
.
object | Reference to an object that is of type GarbageCollected and should be resized. |
additional_bytes | Bytes in addition to sizeof(T) that the object should provide. |
Definition at line 73 of file explicit-management.h.
References cppgc::internal::Resize(), and AdditionalBytes::value.