summaryrefslogtreecommitdiff
path: root/src/emscripten-optimizer/istring.h
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-04-27 13:24:09 -0700
committerAlon Zakai <alonzakai@gmail.com>2016-04-27 16:59:18 -0700
commit90bdf763537815a523d0dbe75a67e7f0b14b0d9e (patch)
tree2fe32e380cabbc3f7e1c5916a8d2ceec90f44fd3 /src/emscripten-optimizer/istring.h
parent2c8e64a91197beed1792e65a9d409ca50e12697c (diff)
downloadbinaryen-90bdf763537815a523d0dbe75a67e7f0b14b0d9e.tar.gz
binaryen-90bdf763537815a523d0dbe75a67e7f0b14b0d9e.tar.bz2
binaryen-90bdf763537815a523d0dbe75a67e7f0b14b0d9e.zip
do not leak in IStringSet
Diffstat (limited to 'src/emscripten-optimizer/istring.h')
-rw-r--r--src/emscripten-optimizer/istring.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/emscripten-optimizer/istring.h b/src/emscripten-optimizer/istring.h
index 149f77d23..e47361eeb 100644
--- a/src/emscripten-optimizer/istring.h
+++ b/src/emscripten-optimizer/istring.h
@@ -149,11 +149,13 @@ namespace cashew {
// IStringSet
class IStringSet : public std::unordered_set<IString> {
+ std::vector<char> data;
public:
IStringSet() {}
IStringSet(const char *init) { // comma-delimited list
int size = strlen(init) + 1;
- char *curr = new char[size]; // leaked!
+ data.resize(size);
+ char *curr = &data[0];
strncpy(curr, init, size);
while (1) {
char *end = strchr(curr, ' ');