diff options
author | Bohdan <bogdan@soramitsu.co.jp> | 2019-03-01 01:52:49 +0200 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2019-02-28 15:52:49 -0800 |
commit | f59c3033e678ced61bc8c78e8ac9fbee31ef0210 (patch) | |
tree | 05a097dfa363ea156dd69cd20c6e847eb2e131ee /src/wasm/wasm.cpp | |
parent | 1a483a28bb7c58349d668ad3f54ef0e9f9607cad (diff) | |
download | binaryen-f59c3033e678ced61bc8c78e8ac9fbee31ef0210.tar.gz binaryen-f59c3033e678ced61bc8c78e8ac9fbee31ef0210.tar.bz2 binaryen-f59c3033e678ced61bc8c78e8ac9fbee31ef0210.zip |
Fix memory leaks (#1925)
Fixes #1921
Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>
Diffstat (limited to 'src/wasm/wasm.cpp')
-rw-r--r-- | src/wasm/wasm.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/wasm/wasm.cpp b/src/wasm/wasm.cpp index 847df5ce6..c12481760 100644 --- a/src/wasm/wasm.cpp +++ b/src/wasm/wasm.cpp @@ -866,6 +866,7 @@ void Module::addExport(Export* curr) { exportsMap[curr->name] = curr; } +// TODO(@warchant): refactor all usages to use variant with unique_ptr void Module::addFunction(Function* curr) { if (!curr->name.is()) { Fatal() << "Module::addFunction: empty name"; @@ -877,6 +878,17 @@ void Module::addFunction(Function* curr) { functionsMap[curr->name] = curr; } +void Module::addFunction(std::unique_ptr<Function> curr) { + if (!curr->name.is()) { + Fatal() << "Module::addFunction: empty name"; + } + if (getFunctionOrNull(curr->name)) { + Fatal() << "Module::addFunction: " << curr->name << " already exists"; + } + functionsMap[curr->name] = curr.get(); + functions.push_back(std::move(curr)); +} + void Module::addGlobal(Global* curr) { if (!curr->name.is()) { Fatal() << "Module::addGlobal: empty name"; |