diff --git a/crates/wasi-common/wig/src/wasi.rs b/crates/wasi-common/wig/src/wasi.rs index 39e263c7a6..0a0acf60f1 100644 --- a/crates/wasi-common/wig/src/wasi.rs +++ b/crates/wasi-common/wig/src/wasi.rs @@ -468,9 +468,17 @@ pub fn define_struct_for_wiggle(args: TokenStream) -> TokenStream { } }; let mem: WasiMemory = mem.into(); + // FIXME: + // Currently, none of the wasi-common functions will re-enter the guest, so + // creating a BorrowChecker here ensures there is just one per the + // WebAssembly memory. I'd like a wasmtime expert to show me how to + // create a BorrowChecker once per Store, and access it in this + // context, though. + let bc = wiggle::BorrowChecker::new(); wasi_common::wasi::#module_id::#name_ident( &mut my_cx.borrow_mut(), &mem, + &bc, #(#hostcall_args),* ) #cvt_ret }