summaryrefslogtreecommitdiffstats
path: root/src/server/JackDriver.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2017-02-11 15:55:58 +0100
committerDavid Robillard <d@drobilla.net>2017-02-12 11:11:14 +0100
commitb6b8f7b3371c6c27055ec1fba970de56dd057a01 (patch)
tree9e8bd44a1c4196e962f87c0c68e8f0dc09554806 /src/server/JackDriver.cpp
parent740b0b7874c0393a14354eb447d689bc30da3eac (diff)
downloadingen-b6b8f7b3371c6c27055ec1fba970de56dd057a01.tar.gz
ingen-b6b8f7b3371c6c27055ec1fba970de56dd057a01.tar.bz2
ingen-b6b8f7b3371c6c27055ec1fba970de56dd057a01.zip
Fix memory leaks
Diffstat (limited to 'src/server/JackDriver.cpp')
-rw-r--r--src/server/JackDriver.cpp11
1 files changed, 2 insertions, 9 deletions
diff --git a/src/server/JackDriver.cpp b/src/server/JackDriver.cpp
index fb672ffa..c03bf42c 100644
--- a/src/server/JackDriver.cpp
+++ b/src/server/JackDriver.cpp
@@ -71,17 +71,10 @@ JackDriver::JackDriver(Engine& engine)
&_forge, &engine.world()->uri_map().urid_map_feature()->urid_map);
}
-struct PortDisposer {
- void operator()(EnginePort* port) { delete port; }
-};
-
JackDriver::~JackDriver()
{
deactivate();
- _ports.clear_and_dispose(PortDisposer());
-
- if (_client)
- jack_client_close(_client);
+ _ports.clear_and_dispose([](EnginePort* p) { delete p; });
}
bool
@@ -178,7 +171,7 @@ void
JackDriver::deactivate()
{
if (_is_activated) {
- _flag = true;
+ _flag = true;
_is_activated = false;
_sem.timed_wait(1000);