summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-08-16 21:23:29 -0700
committerAlon Zakai <alonzakai@gmail.com>2016-09-07 09:55:01 -0700
commite0809680bb82ecfc950aef97537827442b559fcf (patch)
treed7d34796924aa7a8b83e5f9ea16e47609a723e92
parentada1e2671ac3095e62f52932d3358489fdf195f0 (diff)
downloadbinaryen-e0809680bb82ecfc950aef97537827442b559fcf.tar.gz
binaryen-e0809680bb82ecfc950aef97537827442b559fcf.tar.bz2
binaryen-e0809680bb82ecfc950aef97537827442b559fcf.zip
support (data .. ..), separate strings in a data()
-rw-r--r--src/wasm-s-parser.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h
index 7ea9a521e..429dde417 100644
--- a/src/wasm-s-parser.h
+++ b/src/wasm-s-parser.h
@@ -1394,14 +1394,14 @@ private:
} else {
offset = allocator.alloc<Const>()->set(Literal(int32_t(0)));
}
- const char *input = s[i]->c_str();
- if (auto size = strlen(input)) {
- std::vector<char> data;
- stringToBinary(input, size, data);
- wasm.memory.segments.emplace_back(offset, data.data(), data.size());
- } else {
- wasm.memory.segments.emplace_back(offset, "", 0);
+ std::vector<char> data;
+ while (i < s.size()) {
+ const char *input = s[i++]->c_str();
+ if (auto size = strlen(input)) {
+ stringToBinary(input, size, data);
+ }
}
+ wasm.memory.segments.emplace_back(offset, data.data(), data.size());
}
void parseExport(Element& s) {