diff options
author | David Robillard <d@drobilla.net> | 2010-02-04 23:53:37 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2010-02-04 23:53:37 +0000 |
commit | 16edd7b1272e91a5ef28e8b9211b8d5721fafe23 (patch) | |
tree | deb678753bb3e74c9f8da1121b7a9c79c13ec753 /src/engine/LV2Node.cpp | |
parent | 6f3a80bb9c80b8e0cf486d198c2e107512b2cc46 (diff) | |
download | ingen-16edd7b1272e91a5ef28e8b9211b8d5721fafe23.tar.gz ingen-16edd7b1272e91a5ef28e8b9211b8d5721fafe23.tar.bz2 ingen-16edd7b1272e91a5ef28e8b9211b8d5721fafe23.zip |
Fix a bunch of memory leaks.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2429 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/LV2Node.cpp')
-rw-r--r-- | src/engine/LV2Node.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/engine/LV2Node.cpp b/src/engine/LV2Node.cpp index 2e176abe..cdc29b15 100644 --- a/src/engine/LV2Node.cpp +++ b/src/engine/LV2Node.cpp @@ -183,6 +183,7 @@ LV2Node::instantiate(BufferFactory& bufs) Path port_path; PortImpl* port = NULL; + bool ret = true; float* min_values = new float[num_ports]; float* max_values = new float[num_ports]; @@ -271,7 +272,8 @@ LV2Node::instantiate(BufferFactory& bufs) _ports = NULL; delete _instances; _instances = NULL; - return false; + ret = false; + goto done; } if (val.type() == Atom::NIL) @@ -325,9 +327,16 @@ LV2Node::instantiate(BufferFactory& bufs) _ports->at(j) = port; } +done: + delete[] min_values; + delete[] max_values; delete[] def_values; + slv2_value_free(context_pred); + slv2_value_free(default_pred); + slv2_value_free(min_size_pred); + slv2_value_free(port_property_pred); - return true; + return ret; } |