diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-04-27 12:16:57 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-04-27 16:59:17 -0700 |
commit | f4aaf7bfce3808c95554100606cc73916a09fc44 (patch) | |
tree | e20dec61f3433ea10f87a93daae7f88044818544 /src | |
parent | 6db9e90affac38d9bbcec89d978f67877923f207 (diff) | |
download | binaryen-f4aaf7bfce3808c95554100606cc73916a09fc44.tar.gz binaryen-f4aaf7bfce3808c95554100606cc73916a09fc44.tar.bz2 binaryen-f4aaf7bfce3808c95554100606cc73916a09fc44.zip |
clean up in emscripten-optimizer arenas
Diffstat (limited to 'src')
-rw-r--r-- | src/emscripten-optimizer/simple_ast.cpp | 9 | ||||
-rw-r--r-- | src/emscripten-optimizer/simple_ast.h | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/emscripten-optimizer/simple_ast.cpp b/src/emscripten-optimizer/simple_ast.cpp index 285686b9a..dddaeab02 100644 --- a/src/emscripten-optimizer/simple_ast.cpp +++ b/src/emscripten-optimizer/simple_ast.cpp @@ -56,6 +56,15 @@ bool Ref::operator!() { Arena arena; +Arena::~Arena() { + for (auto* chunk : chunks) { + delete[] chunk; + } + for (auto* chunk : arr_chunks) { + delete[] chunk; + } +} + Ref Arena::alloc() { if (chunks.size() == 0 || index == CHUNK_SIZE) { chunks.push_back(new Value[CHUNK_SIZE]); diff --git a/src/emscripten-optimizer/simple_ast.h b/src/emscripten-optimizer/simple_ast.h index 75b7987be..bfb42c510 100644 --- a/src/emscripten-optimizer/simple_ast.h +++ b/src/emscripten-optimizer/simple_ast.h @@ -84,6 +84,7 @@ struct Arena { int arr_index; Arena() : index(0), arr_index(0) {} + ~Arena(); Ref alloc(); ArrayStorage* allocArray(); |