summaryrefslogtreecommitdiff
path: root/src/binaryen-shell.cpp
diff options
context:
space:
mode:
authorJF Bastien <github@jfbastien.com>2016-02-02 14:59:58 +0100
committerJF Bastien <github@jfbastien.com>2016-02-02 14:59:58 +0100
commit4044cbd8fe593a118456079eaddfb393c84b9e76 (patch)
tree43f4dde36c9db6dbf3a36cb4a178a6091cce8b8d /src/binaryen-shell.cpp
parent9a0faea4e061d0ce6686914543204e05cc7b93c3 (diff)
parentc0c40ceaf1c5e2c4fc966b36ec04592e6c67979f (diff)
downloadbinaryen-4044cbd8fe593a118456079eaddfb393c84b9e76.tar.gz
binaryen-4044cbd8fe593a118456079eaddfb393c84b9e76.tar.bz2
binaryen-4044cbd8fe593a118456079eaddfb393c84b9e76.zip
Merge pull request #165 from WebAssembly/entry-params
Shell: fix --entry parameter numbers
Diffstat (limited to 'src/binaryen-shell.cpp')
-rw-r--r--src/binaryen-shell.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/binaryen-shell.cpp b/src/binaryen-shell.cpp
index 96f76fa95..08634c41a 100644
--- a/src/binaryen-shell.cpp
+++ b/src/binaryen-shell.cpp
@@ -183,10 +183,18 @@ static void run_asserts(size_t* i, bool* checked, AllocatingModule* wasm,
auto interface = new ShellExternalInterface();
auto instance = new ModuleInstance(*wasm, interface);
if (entry.is() > 0) {
- ModuleInstance::LiteralList arguments;
- try {
- instance->callExport(entry, arguments);
- } catch (ExitException& x) {
+ Function* function = wasm->functionsMap[entry];
+ if (!function) {
+ std::cerr << "Unknown entry " << entry << std::endl;
+ } else {
+ ModuleInstance::LiteralList arguments;
+ for (NameType param : function->params) {
+ arguments.push_back(Literal(param.type));
+ }
+ try {
+ instance->callExport(entry, arguments);
+ } catch (ExitException& x) {
+ }
}
}
while (*i < root->size()) {