feat: update wasmtime

This commit is contained in:
2022-07-16 16:18:16 +08:00
parent 51685c6284
commit dd45671b35

View File

@@ -14,7 +14,7 @@ use wasmtime::*;
// } // }
fn main() -> Result<()> { fn main() -> Result<()> {
let engine = Engine::default(); let engine = Engine::default();
let wasm = std::fs::read("./examples/hello_wasm_bg.wasm").unwrap(); let wasm = std::fs::read("./examples/hello_wasm_bg.wasm")?;
let module = Module::new(&engine, wasm)?; let module = Module::new(&engine, wasm)?;
let mut linker = Linker::new(&engine); let mut linker = Linker::new(&engine);
@@ -35,14 +35,15 @@ fn main() -> Result<()> {
let memory = instance.get_memory(&mut store, "memory") let memory = instance.get_memory(&mut store, "memory")
.ok_or_else(|| anyhow::format_err!("failed to find `memory` export"))?; .ok_or_else(|| anyhow::format_err!("failed to find `memory` export"))?;
// println!("memory size: {}", memory.size(&store));
let msg = "hatter".as_bytes(); let msg = "hatter".as_bytes();
let malloc = instance.get_typed_func::<i32, i32, _>(&mut store, "__wbindgen_malloc")?; let malloc_fn = instance.get_typed_func::<i32, i32, _>(&mut store, "__wbindgen_malloc")?;
let msg_ptr = malloc.call(&mut store, msg.len() as i32)?; let msg_ptr = malloc_fn.call(&mut store, msg.len() as i32)?;
memory.write(&mut store, msg_ptr as usize, msg)?; memory.write(&mut store, msg_ptr as usize, msg)?;
let greet_fn = instance.get_typed_func::<(i32, i32), (), _>(&mut store, "greet")?; let greet_fn = instance.get_typed_func::<(i32, i32), (), _>(&mut store, "greet")?;
greet_fn.call(&mut store, (p, msg.len() as i32))?; greet_fn.call(&mut store, (msg_ptr, msg.len() as i32))?;
Ok(()) Ok(())
} }