diff options
author | JF Bastien <github@jfbastien.com> | 2016-02-02 14:59:58 +0100 |
---|---|---|
committer | JF Bastien <github@jfbastien.com> | 2016-02-02 14:59:58 +0100 |
commit | 4044cbd8fe593a118456079eaddfb393c84b9e76 (patch) | |
tree | 43f4dde36c9db6dbf3a36cb4a178a6091cce8b8d /src/binaryen-shell.cpp | |
parent | 9a0faea4e061d0ce6686914543204e05cc7b93c3 (diff) | |
parent | c0c40ceaf1c5e2c4fc966b36ec04592e6c67979f (diff) | |
download | binaryen-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.cpp | 16 |
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()) { |