summaryrefslogtreecommitdiff
path: root/src/passes/GenerateDynCalls.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/GenerateDynCalls.cpp')
-rw-r--r--src/passes/GenerateDynCalls.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/passes/GenerateDynCalls.cpp b/src/passes/GenerateDynCalls.cpp
index dad992fea..8ed9ce8b4 100644
--- a/src/passes/GenerateDynCalls.cpp
+++ b/src/passes/GenerateDynCalls.cpp
@@ -24,6 +24,7 @@
#include "abi/js.h"
#include "asm_v_wasm.h"
+#include "ir/element-utils.h"
#include "ir/import-utils.h"
#include "pass.h"
#include "support/debug.h"
@@ -57,9 +58,10 @@ struct GenerateDynCalls : public WalkerPass<PostWalker<GenerateDynCalls>> {
});
if (it != segments.end()) {
std::vector<Name> tableSegmentData;
- for (const auto& indirectFunc : it->get()->data) {
- generateDynCallThunk(wasm->getFunction(indirectFunc)->sig);
- }
+ ElementUtils::iterElementSegmentFunctionNames(
+ it->get(), [&](Name name, Index) {
+ generateDynCallThunk(wasm->getFunction(name)->sig);
+ });
}
}