#[repr(C)]
pub struct VMExternRefActivationsTable { /* private fields */ }
Expand description

A table that over-approximizes the set of VMExternRefs that any Wasm activation on this thread is currently using.

Under the covers, this is a simple bump allocator that allows duplicate entries. Deduplication happens at GC time.

Implementations§

Create a new VMExternRefActivationsTable.

Get the available capacity in the bump allocation chunk.

Try and insert a VMExternRef into this table.

This is a fast path that only succeeds when the bump chunk has the capacity for the requested insertion.

If the insertion fails, then the VMExternRef is given back. Callers may attempt a GC to free up space and try again, or may call insert_slow_path to infallibly insert the reference (potentially allocating additional space in the table to hold it).

Insert a reference into the table, falling back on a GC to clear up space if the table is already full.

Unsafety

The same as gc.

Insert a reference into the table, without ever performing GC.

Fetches the current value of this table’s stack canary.

This should only be used in conjunction with setting the stack canary below if the return value is None typically. This is called from RAII guards in wasmtime::func::invoke_wasm_and_catch_traps.

For more information on canaries see the gc functions below.

Sets the current value of the stack canary.

This is called from RAII guards in wasmtime::func::invoke_wasm_and_catch_traps. This is used to update the stack canary to a concrete value and then reset it back to None when wasm is finished.

For more information on canaries see the gc functions below.

Set whether it is okay to GC or not right now.

This is provided as a helper for enabling various debug-only assertions and checking places where the wasmtime-runtime user expects there not to be any GCs.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.