diff options
Diffstat (limited to 'src/wasm/wasm-io.cpp')
-rw-r--r-- | src/wasm/wasm-io.cpp | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/wasm/wasm-io.cpp b/src/wasm/wasm-io.cpp index 1f50d7140..d7ba4cf25 100644 --- a/src/wasm/wasm-io.cpp +++ b/src/wasm/wasm-io.cpp @@ -27,7 +27,6 @@ #include "wasm-io.h" #include "wasm-s-parser.h" #include "wasm-binary.h" -#include "support/file.h" namespace wasm { @@ -65,14 +64,17 @@ void ModuleReader::read(std::string filename, Module& wasm) { } } +void ModuleWriter::writeText(Module& wasm, Output& output) { + WasmPrinter::printModule(&wasm, output.getStream()); +} + void ModuleWriter::writeText(Module& wasm, std::string filename) { if (debug) std::cerr << "writing text to " << filename << "\n"; Output output(filename, Flags::Text, debug ? Flags::Debug : Flags::Release); - WasmPrinter::printModule(&wasm, output.getStream()); + writeText(wasm, output); } -void ModuleWriter::writeBinary(Module& wasm, std::string filename) { - if (debug) std::cerr << "writing binary to " << filename << "\n"; +void ModuleWriter::writeBinary(Module& wasm, Output& output) { BufferWithRandomAccess buffer(debug); WasmBinaryWriter writer(&wasm, buffer, debug); // if debug info is used, then we want to emit the names section @@ -85,13 +87,26 @@ void ModuleWriter::writeBinary(Module& wasm, std::string filename) { } if (symbolMap.size() > 0) writer.setSymbolMap(symbolMap); writer.write(); - Output output(filename, Flags::Binary, debug ? Flags::Debug : Flags::Release); buffer.writeTo(output); if (sourceMapStream) { sourceMapStream->close(); } } +void ModuleWriter::writeBinary(Module& wasm, std::string filename) { + if (debug) std::cerr << "writing binary to " << filename << "\n"; + Output output(filename, Flags::Binary, debug ? Flags::Debug : Flags::Release); + writeBinary(wasm, output); +} + +void ModuleWriter::write(Module& wasm, Output& output) { + if (binary) { + writeBinary(wasm, output); + } else { + writeText(wasm, output); + } +} + void ModuleWriter::write(Module& wasm, std::string filename) { if (binary && filename.size() > 0) { writeBinary(wasm, filename); |