diff options
-rw-r--r-- | src/tools/wasm-emscripten-finalize.cpp | 6 | ||||
-rw-r--r-- | src/wasm-emscripten.h | 3 | ||||
-rw-r--r-- | src/wasm/wasm-emscripten.cpp | 12 |
3 files changed, 8 insertions, 13 deletions
diff --git a/src/tools/wasm-emscripten-finalize.cpp b/src/tools/wasm-emscripten-finalize.cpp index d12594274..71f3cf443 100644 --- a/src/tools/wasm-emscripten-finalize.cpp +++ b/src/tools/wasm-emscripten-finalize.cpp @@ -230,7 +230,7 @@ int main(int argc, const char* argv[]) { generator.onlyI64DynCalls = onlyI64DynCalls; generator.noDynCalls = noDynCalls; - std::vector<Name> initializerFunctions; + Name initializerFunction; if (!standaloneWasm) { // This is also not needed in standalone mode since standalone mode uses @@ -292,7 +292,7 @@ int main(int argc, const char* argv[]) { // Unless there is no entry point. if (!standaloneWasm || !wasm.getExportOrNull("_start")) { if (auto* e = wasm.getExportOrNull(WASM_CALL_CTORS)) { - initializerFunctions.push_back(e->name); + initializerFunction = e->name; } } } @@ -300,7 +300,7 @@ int main(int argc, const char* argv[]) { BYN_TRACE("generated metadata\n"); // Substantial changes to the wasm are done, enough to create the metadata. std::string metadata = - generator.generateEmscriptenMetadata(initializerFunctions); + generator.generateEmscriptenMetadata(initializerFunction); // Finally, separate out data segments if relevant (they may have been needed // for metadata). diff --git a/src/wasm-emscripten.h b/src/wasm-emscripten.h index 8c5eeb4e1..31038aaa9 100644 --- a/src/wasm-emscripten.h +++ b/src/wasm-emscripten.h @@ -33,8 +33,7 @@ public: : wasm(wasm), builder(wasm), stackPointerOffset(stackPointerOffset), useStackPointerGlobal(stackPointerOffset == 0) {} - std::string - generateEmscriptenMetadata(std::vector<Name> const& initializerFunctions); + std::string generateEmscriptenMetadata(Name initializer); void fixInvokeFunctionNames(); diff --git a/src/wasm/wasm-emscripten.cpp b/src/wasm/wasm-emscripten.cpp index fe9aeffeb..69e0618b1 100644 --- a/src/wasm/wasm-emscripten.cpp +++ b/src/wasm/wasm-emscripten.cpp @@ -434,8 +434,8 @@ void printSignatures(std::ostream& o, const std::set<Signature>& c) { o << "]"; } -std::string EmscriptenGlueGenerator::generateEmscriptenMetadata( - std::vector<Name> const& initializerFunctions) { +std::string +EmscriptenGlueGenerator::generateEmscriptenMetadata(Name initializer) { bool commaFirst; auto nextElement = [&commaFirst]() { if (commaFirst) { @@ -482,13 +482,9 @@ std::string EmscriptenGlueGenerator::generateEmscriptenMetadata( meta << " \"tableSize\": " << wasm.table.initial.addr << ",\n"; - if (!initializerFunctions.empty()) { + if (initializer.is()) { meta << " \"initializers\": ["; - commaFirst = true; - for (const auto& func : initializerFunctions) { - meta << nextElement(); - meta << "\"" << func.c_str() << "\""; - } + meta << "\n \"" << initializer.c_str() << "\""; meta << "\n ],\n"; } |