diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-03-14 15:56:59 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-03-14 15:56:59 -0700 |
commit | 5a5a322f74fbeaa9a5cf80c2cddcb26f6fb794d0 (patch) | |
tree | 1a9b6dea28ffe2c84337ffb90858599c9a4cc387 | |
parent | 48a12f0cf134a15434432954c56c893ea1fc6eca (diff) | |
download | binaryen-5a5a322f74fbeaa9a5cf80c2cddcb26f6fb794d0.tar.gz binaryen-5a5a322f74fbeaa9a5cf80c2cddcb26f6fb794d0.tar.bz2 binaryen-5a5a322f74fbeaa9a5cf80c2cddcb26f6fb794d0.zip |
add binary header
-rw-r--r-- | src/wasm-binary.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/wasm-binary.h b/src/wasm-binary.h index 081924ba0..2ce460c6f 100644 --- a/src/wasm-binary.h +++ b/src/wasm-binary.h @@ -386,6 +386,7 @@ public: } void write() { + writeHeader(); writeStart(); writeMemory(); writeSignatures(); @@ -396,6 +397,12 @@ public: finishUp(); } + void writeHeader() { + if (debug) std::cerr << "== writeStart" << std::endl; + o << int32_t(0x6d736100); // magic number \0asm + o << int32_t(10); // version number + } + void writeStart() { if (!wasm->start.is()) return; if (debug) std::cerr << "== writeStart" << std::endl; @@ -966,6 +973,8 @@ public: WasmBinaryBuilder(AllocatingModule& wasm, std::vector<char>& input, bool debug) : wasm(wasm), allocator(wasm.allocator), input(input), debug(debug), pos(0) {} void read() { + readHeader(); + // read sections until the end while (1) { int8_t section = getInt8(); @@ -1085,6 +1094,11 @@ public: pos--; } + void readHeader() { + verifyInt32(0x6d736100); + verifyInt32(10); + } + void readStart() { if (debug) std::cerr << "== readStart" << std::endl; wasm.start = getString(); |