diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-01-27 17:01:36 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-01-27 17:01:36 -0800 |
commit | 002080c03eca29fb26901b5953e29cb1dac34c9f (patch) | |
tree | d10caff03e35d7136fdc9db6837f45eace424dfb /src | |
parent | d378fd9a098572d1517f8ac9ce8909fd38f11122 (diff) | |
download | binaryen-002080c03eca29fb26901b5953e29cb1dac34c9f.tar.gz binaryen-002080c03eca29fb26901b5953e29cb1dac34c9f.tar.bz2 binaryen-002080c03eca29fb26901b5953e29cb1dac34c9f.zip |
ignore zero-size segments in binary format
Diffstat (limited to 'src')
-rw-r--r-- | src/wasm-binary.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/wasm-binary.h b/src/wasm-binary.h index 10bd40ece..f86a19aa8 100644 --- a/src/wasm-binary.h +++ b/src/wasm-binary.h @@ -509,8 +509,13 @@ public: void writeDataSegments() { if (wasm->memory.segments.size() == 0) return; - o << int8_t(BinaryConsts::DataSegments) << LEB128(wasm->memory.segments.size()); + uint32_t num = 0; for (auto& segment : wasm->memory.segments) { + if (segment.size > 0) num++; + } + o << int8_t(BinaryConsts::DataSegments) << LEB128(num); + for (auto& segment : wasm->memory.segments) { + if (segment.size == 0) continue; o << int32_t(segment.offset); emitBuffer(segment.data, segment.size); o << int32_t(segment.size); |