summaryrefslogtreecommitdiffstats
path: root/src/server/BufferFactory.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-09-23 23:51:44 +0000
committerDavid Robillard <d@drobilla.net>2011-09-23 23:51:44 +0000
commit4cc5c82a87cf2316f425a9ea1de0fb29d0c24c8e (patch)
treed2b874fb8e7437cf7ea819fa6faca36e1c3ddc9d /src/server/BufferFactory.cpp
parent41f1be0a68676f33dc1d7dfbb32c5d6440ebd4c9 (diff)
downloadingen-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.cpp10
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