summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-06-29 11:15:08 -0700
committerAlon Zakai <alonzakai@gmail.com>2016-06-29 11:16:28 -0700
commit4ab71c88f4b25cb456f43b58bd8f30e8444206a9 (patch)
tree1b284d6a48778e5b0f6f57b0bc13c197fdf124a0
parent854f4d98e0d35bf129ab07e1c147dbb4db39a51c (diff)
downloadbinaryen-4ab71c88f4b25cb456f43b58bd8f30e8444206a9.tar.gz
binaryen-4ab71c88f4b25cb456f43b58bd8f30e8444206a9.tar.bz2
binaryen-4ab71c88f4b25cb456f43b58bd8f30e8444206a9.zip
fix wasm interpreter bug on checking indirect call params
-rw-r--r--src/wasm-interpreter.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h
index 2206bfcae..a8b4b5614 100644
--- a/src/wasm-interpreter.h
+++ b/src/wasm-interpreter.h
@@ -650,8 +650,10 @@ private:
Function *func = instance.wasm.getFunction(name);
if (func->type.is() && func->type != curr->fullType) trap("callIndirect: bad type");
if (func->params.size() != arguments.size()) trap("callIndirect: bad # of arguments");
- for (size_t i = 0; i < func->getNumLocals(); i++) {
- if (func->params[i] != arguments[i].type) trap("callIndirect: bad argument type");
+ for (size_t i = 0; i < func->params.size(); i++) {
+ if (func->params[i] != arguments[i].type) {
+ trap("callIndirect: bad argument type");
+ }
}
return instance.callFunctionInternal(name, arguments);
}