diff options
Diffstat (limited to 'src/passes')
-rw-r--r-- | src/passes/Print.cpp | 8 | ||||
-rw-r--r-- | src/passes/RemoveImports.cpp | 9 |
2 files changed, 10 insertions, 7 deletions
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp index eb0a6d33b..256968bb7 100644 --- a/src/passes/Print.cpp +++ b/src/passes/Print.cpp @@ -522,17 +522,17 @@ struct PrintSExpression : public Visitor<PrintSExpression> { } for (auto& child : curr->functionTypes) { doIndent(o, indent); - visitFunctionType(child, true); + visitFunctionType(child.get(), true); o << maybeNewLine; } for (auto& child : curr->imports) { doIndent(o, indent); - visitImport(child); + visitImport(child.get()); o << maybeNewLine; } for (auto& child : curr->exports) { doIndent(o, indent); - visitExport(child); + visitExport(child.get()); o << maybeNewLine; } if (curr->table.names.size() > 0) { @@ -542,7 +542,7 @@ struct PrintSExpression : public Visitor<PrintSExpression> { } for (auto& child : curr->functions) { doIndent(o, indent); - visitFunction(child); + visitFunction(child.get()); o << maybeNewLine; } decIndent(); diff --git a/src/passes/RemoveImports.cpp b/src/passes/RemoveImports.cpp index 0adb9a448..1ef28292f 100644 --- a/src/passes/RemoveImports.cpp +++ b/src/passes/RemoveImports.cpp @@ -48,9 +48,12 @@ struct RemoveImports : public WalkerPass<PostWalker<RemoveImports, Visitor<Remov } void visitModule(Module *curr) { - auto imports = curr->imports; // copy - for (auto* import : imports) { - curr->removeImport(import->name); + std::vector<Name> names; + for (auto& import : curr->imports) { + names.push_back(import->name); + } + for (auto& name : names) { + curr->removeImport(name); } } }; |