v8 14.1.146 (node 25.0.0)
V8 is Google's open source JavaScript engine
Loading...
Searching...
No Matches
cppgc::subtle Namespace Reference

Data Structures

class  DisallowGarbageCollectionScope
 
class  HeapConsistency
 
class  HeapState
 
class  NoGarbageCollectionScope
 
struct  ObjectSizeTrait
 
struct  ObjectSizeTrait< T, false >
 
struct  ObjectSizeTrait< T, true >
 
class  TaggedUncompressedMember
 

Functions

template<typename T >
void FreeUnreferencedObject (HeapHandle &heap_handle, T &object)
 
template<typename T >
bool Resize (T &object, AdditionalBytes additional_bytes)
 

Function Documentation

◆ FreeUnreferencedObject()

template<typename T >
void 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.

Parameters
heap_handleThe corresponding heap.
objectReference to an object that is of type GarbageCollected and should be immediately reclaimed.

Definition at line 61 of file explicit-management.h.

◆ Resize()

template<typename T >
bool 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().

Parameters
objectReference to an object that is of type GarbageCollected and should be resized.
additional_bytesBytes in addition to sizeof(T) that the object should provide.
Returns
true when the operation was successful and the result can be relied on, and false otherwise.

Definition at line 90 of file explicit-management.h.