|
Wasmtime
|
Go to the source code of this file.
Functions | |
| WASM_API_EXTERN wasmtime_error_t * | wasmtime_exnref_new (wasmtime_context_t *store, const wasmtime_tag_t *tag, const wasmtime_val_t *fields, size_t nfields, wasmtime_exnref_t *exn_ret) |
| Creates a new exception object. More... | |
| WASM_API_EXTERN void | wasmtime_exnref_clone (const wasmtime_exnref_t *ref, wasmtime_exnref_t *out) |
Creates a new reference pointing to the same exception that ref points to. More... | |
| WASM_API_EXTERN void | wasmtime_exnref_unroot (wasmtime_exnref_t *ref) |
Unroots the ref provided, enabling future garbage collection. More... | |
| WASM_API_EXTERN void | wasmtime_exnref_from_raw (wasmtime_context_t *context, uint32_t raw, wasmtime_exnref_t *out) |
Converts a raw exnref value coming from wasmtime_val_raw_t into a wasmtime_exnref_t. More... | |
| WASM_API_EXTERN uint32_t | wasmtime_exnref_to_raw (wasmtime_context_t *context, const wasmtime_exnref_t *ref) |
| Converts a wasmtime_exnref_t to a raw value suitable for storing into a wasmtime_val_raw_t. More... | |
| WASM_API_EXTERN wasmtime_error_t * | wasmtime_exnref_tag (wasmtime_context_t *store, const wasmtime_exnref_t *exn, wasmtime_tag_t *tag_ret) |
| Returns the tag associated with this exception. More... | |
| WASM_API_EXTERN size_t | wasmtime_exnref_field_count (wasmtime_context_t *store, const wasmtime_exnref_t *exn) |
| Returns the number of fields in this exception. More... | |
| WASM_API_EXTERN wasmtime_error_t * | wasmtime_exnref_field (wasmtime_context_t *store, const wasmtime_exnref_t *exn, size_t index, wasmtime_val_t *val_ret) |
| Reads a field value from this exception by index. More... | |
| WASM_API_EXTERN wasm_trap_t * | wasmtime_context_set_exception (wasmtime_context_t *store, const wasmtime_exnref_t *exn) |
| Sets the pending exception on the store and returns a trap. More... | |
| WASM_API_EXTERN bool | wasmtime_context_take_exception (wasmtime_context_t *store, wasmtime_exnref_t *exn_ret) |
| Takes the pending exception from the store, if any. More... | |
| WASM_API_EXTERN bool | wasmtime_context_has_exception (wasmtime_context_t *store) |
| Tests whether there is a pending exception on the store. More... | |
APIs for interacting with WebAssembly exnref type in Wasmtime.
| WASM_API_EXTERN bool wasmtime_context_has_exception | ( | wasmtime_context_t * | store | ) |
Tests whether there is a pending exception on the store.
| store | the store context |
| WASM_API_EXTERN wasm_trap_t * wasmtime_context_set_exception | ( | wasmtime_context_t * | store, |
| const wasmtime_exnref_t * | exn | ||
| ) |
Sets the pending exception on the store and returns a trap.
Returns a wasm_trap_t that the host callback MUST return to signal to the Wasm runtime that an exception was thrown. The caller owns the returned trap.
| store | the store context |
| exn | the exception to throw |
| WASM_API_EXTERN bool wasmtime_context_take_exception | ( | wasmtime_context_t * | store, |
| wasmtime_exnref_t * | exn_ret | ||
| ) |
Takes the pending exception from the store, if any.
If there is a pending exception, removes it from the store and returns it. The caller owns the returned pointer and must free it with wasmtime_exnref_unroot.
| store | the store context |
| exn_ret | on success, set to the exception (caller-owned) |
| WASM_API_EXTERN void wasmtime_exnref_clone | ( | const wasmtime_exnref_t * | ref, |
| wasmtime_exnref_t * | out | ||
| ) |
Creates a new reference pointing to the same exception that ref points to.
The returned reference is stored in out.
| WASM_API_EXTERN wasmtime_error_t * wasmtime_exnref_field | ( | wasmtime_context_t * | store, |
| const wasmtime_exnref_t * | exn, | ||
| size_t | index, | ||
| wasmtime_val_t * | val_ret | ||
| ) |
Reads a field value from this exception by index.
| store | the store context |
| exn | the exception to query |
| index | the field index (0-based) |
| val_ret | on success, filled with the field value (caller-owned on return). |
| WASM_API_EXTERN size_t wasmtime_exnref_field_count | ( | wasmtime_context_t * | store, |
| const wasmtime_exnref_t * | exn | ||
| ) |
Returns the number of fields in this exception.
| store | the store context |
| exn | the exception to query |
| WASM_API_EXTERN void wasmtime_exnref_from_raw | ( | wasmtime_context_t * | context, |
| uint32_t | raw, | ||
| wasmtime_exnref_t * | out | ||
| ) |
Converts a raw exnref value coming from wasmtime_val_raw_t into a wasmtime_exnref_t.
The out reference is filled in with the non-raw version of this exnref. It must eventually be unrooted with wasmtime_exnref_unroot.
| WASM_API_EXTERN wasmtime_error_t * wasmtime_exnref_new | ( | wasmtime_context_t * | store, |
| const wasmtime_tag_t * | tag, | ||
| const wasmtime_val_t * | fields, | ||
| size_t | nfields, | ||
| wasmtime_exnref_t * | exn_ret | ||
| ) |
Creates a new exception object.
| store | the store context |
| tag | the tag to associate with this exception |
| fields | pointer to an array of field values matching the tag's payload signature |
| nfields | the number of elements in fields |
| exn_ret | on success, set to the newly allocated exception. The caller owns the returned pointer and must free it with wasmtime_exnref_unroot. |
| WASM_API_EXTERN wasmtime_error_t * wasmtime_exnref_tag | ( | wasmtime_context_t * | store, |
| const wasmtime_exnref_t * | exn, | ||
| wasmtime_tag_t * | tag_ret | ||
| ) |
Returns the tag associated with this exception.
| store | the store context |
| exn | the exception to query |
| tag_ret | on success, filled with the exception's tag |
| WASM_API_EXTERN uint32_t wasmtime_exnref_to_raw | ( | wasmtime_context_t * | context, |
| const wasmtime_exnref_t * | ref | ||
| ) |
Converts a wasmtime_exnref_t to a raw value suitable for storing into a wasmtime_val_raw_t.
Note that the returned underlying value is not tracked by Wasmtime's garbage collector until it enters WebAssembly. This means that a GC may release the context's reference to the raw value, making the raw value invalid within the context of the store. Do not perform a GC between calling this function and passing it to WebAssembly.
| WASM_API_EXTERN void wasmtime_exnref_unroot | ( | wasmtime_exnref_t * | ref | ) |
Unroots the ref provided, enabling future garbage collection.
After this call, ref is left in an undefined state and should not be used.