diff options
author | David Robillard <d@drobilla.net> | 2011-09-23 23:51:44 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-09-23 23:51:44 +0000 |
commit | 4cc5c82a87cf2316f425a9ea1de0fb29d0c24c8e (patch) | |
tree | d2b874fb8e7437cf7ea819fa6faca36e1c3ddc9d /src/server/BufferFactory.cpp | |
parent | 41f1be0a68676f33dc1d7dfbb32c5d6440ebd4c9 (diff) | |
download | ingen-4cc5c82a87cf2316f425a9ea1de0fb29d0c24c8e.tar.gz ingen-4cc5c82a87cf2316f425a9ea1de0fb29d0c24c8e.tar.bz2 ingen-4cc5c82a87cf2316f425a9ea1de0fb29d0c24c8e.zip |
Fix memory leaks and errors.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3482 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/BufferFactory.cpp')
-rw-r--r-- | src/server/BufferFactory.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/server/BufferFactory.cpp b/src/server/BufferFactory.cpp index f725079b..f6f73fdc 100644 --- a/src/server/BufferFactory.cpp +++ b/src/server/BufferFactory.cpp @@ -44,6 +44,7 @@ BufferFactory::BufferFactory(Engine& engine, BufferFactory::~BufferFactory() { + _silent_buffer.reset(); free_list(_free_audio.get()); free_list(_free_control.get()); free_list(_free_event.get()); @@ -53,10 +54,11 @@ BufferFactory::~BufferFactory() void BufferFactory::free_list(Buffer* head) { - Buffer* next = head->_next; - delete head; - if (next) - free_list(next); + while (head) { + Buffer* next = head->_next; + delete head; + head = next; + } } void |