diff --git a/src/passes/LegalizeJSInterface.cpp b/src/passes/LegalizeJSInterface.cpp index 3a28e1745b9..61f3cfba5e0 100644 --- a/src/passes/LegalizeJSInterface.cpp +++ b/src/passes/LegalizeJSInterface.cpp @@ -112,6 +112,11 @@ struct LegalizeJSInterface : public Pass { // Gather functions used in 'ref.func'. They should not be removed. std::unordered_map> usedInRefFunc; + // Fill in unordered_map, as we operate on it in parallel. + for (auto& func : module->functions) { + usedInRefFunc[func->name]; + } + struct RefFuncScanner : public WalkerPass> { Module& wasm; std::unordered_map>& usedInRefFunc; @@ -125,12 +130,7 @@ struct LegalizeJSInterface : public Pass { RefFuncScanner( Module& wasm, std::unordered_map>& usedInRefFunc) - : wasm(wasm), usedInRefFunc(usedInRefFunc) { - // Fill in unordered_map, as we operate on it in parallel - for (auto& func : wasm.functions) { - usedInRefFunc[func->name]; - } - } + : wasm(wasm), usedInRefFunc(usedInRefFunc) {} void visitRefFunc(RefFunc* curr) { usedInRefFunc[curr->func] = true; } };