Commit 57e16b9a authored by Jacek Konieczny's avatar Jacek Konieczny
Browse files

Release audio devices when alsa_driver_new fails

Call JackAlsaDriver::Close() when alsa_driver_new() fails, to
release devices acquired just before that call. Otherwise
JackAlsaDriver::Open() will never succeed again, as re-acquiring the
same device will fail with "A handler is already registered" DBus error.
parent dab7e50e
......@@ -346,7 +346,7 @@ int JackAlsaDriver::Open(jack_nframes_t nframes,
fPlaybackChannels = ((alsa_driver_t *)fDriver)->playback_nchannels;
return 0;
} else {
JackAudioDriver::Close();
Close();
return -1;
}
}
......@@ -356,7 +356,9 @@ int JackAlsaDriver::Close()
// Generic audio driver close
int res = JackAudioDriver::Close();
alsa_driver_delete((alsa_driver_t*)fDriver);
if (fDriver) {
alsa_driver_delete((alsa_driver_t*)fDriver);
}
if (JackServerGlobals::on_device_release != NULL)
{
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment