diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-01-13 20:48:04 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-01-13 20:48:04 -0800 |
commit | 6bc27c2f165bc9f409165eed8c831c47359acc48 (patch) | |
tree | 8a373a99f22ac5ab6a94482c7174b1b287b53f86 /src/wasm-binary.h | |
parent | 8e629f9cd68966cf531e1d7789c38543b74a3c3f (diff) | |
download | binaryen-6bc27c2f165bc9f409165eed8c831c47359acc48.tar.gz binaryen-6bc27c2f165bc9f409165eed8c831c47359acc48.tar.bz2 binaryen-6bc27c2f165bc9f409165eed8c831c47359acc48.zip |
fix binary skipping bug
Diffstat (limited to 'src/wasm-binary.h')
-rw-r--r-- | src/wasm-binary.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/wasm-binary.h b/src/wasm-binary.h index bf5e185cc..2846a4659 100644 --- a/src/wasm-binary.h +++ b/src/wasm-binary.h @@ -470,8 +470,12 @@ public: } if (function) { size_t curr = o.size(); + o << (uint32_t)0; // placeholder visit(function->body); - o.writeAt(curr, uint16_t(o.size() - curr)); + size_t size = o.size() - curr; + assert(size <= std::numeric_limits<uint16_t>::max()); + if (debug) std::cerr << "body size: " << size << ", writing at " << curr << ", next starts at " << o.size() << std::endl; + o.writeAt(curr, uint16_t(size)); } } } |