Skip to content

Commit f7b3200

Browse files
committed
fix bug in wasmi executor
1 parent 983ef37 commit f7b3200

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

Diff for: crates/wasmi/src/engine/mod.rs

+6-2
Original file line numberDiff line numberDiff line change
@@ -647,7 +647,9 @@ impl<'engine> EngineExecutor<'engine> {
647647
Results: CallResults,
648648
{
649649
self.stack.reset();
650-
self.stack.values.extend(params.call_params());
650+
let call_params = params.call_params();
651+
self.stack.values.reserve(call_params.len())?;
652+
self.stack.values.extend(call_params);
651653
match ctx.as_context().store.inner.resolve_func(func) {
652654
FuncEntity::Wasm(wasm_func) => {
653655
self.stack
@@ -689,7 +691,9 @@ impl<'engine> EngineExecutor<'engine> {
689691
self.stack
690692
.values
691693
.drop(host_func.ty(ctx.as_context()).params().len());
692-
self.stack.values.extend(params.call_params());
694+
let call_params = params.call_params();
695+
self.stack.values.reserve(call_params.len())?;
696+
self.stack.values.extend(call_params);
693697
assert!(
694698
self.stack.frames.peek().is_some(),
695699
"a frame must be on the call stack upon resumption"

0 commit comments

Comments
 (0)