summaryrefslogtreecommitdiff
path: root/src/wasm-s-parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm-s-parser.h')
-rw-r--r--src/wasm-s-parser.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h
index 3187ce63c..3b6b07fb0 100644
--- a/src/wasm-s-parser.h
+++ b/src/wasm-s-parser.h
@@ -1066,9 +1066,11 @@ private:
}
// converts an s-expression string representing binary data into an output sequence of raw bytes
+ // this appends to data, which may already contain content.
void stringToBinary(const char* input, size_t size, std::vector<char>& data) {
- data.resize(size);
- char *write = data.data();
+ auto originalSize = data.size();
+ data.resize(originalSize + size);
+ char *write = data.data() + originalSize;
while (1) {
if (input[0] == 0) break;
if (input[0] == '\\') {
@@ -1102,9 +1104,9 @@ private:
input++;
}
assert(write >= data.data());
- size_t written = write - data.data();
- assert(written <= data.size());
- data.resize(written);
+ size_t actual = write - data.data();
+ assert(actual <= data.size());
+ data.resize(actual);
}
bool hasMemory = false;