diff options
author | David Robillard <d@drobilla.net> | 2007-01-15 21:36:22 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-01-15 21:36:22 +0000 |
commit | 014ba4fb2d72bdc481c2ba76bd53901a39725b86 (patch) | |
tree | 638275625f694df61226e70f06281d0372ff7cdc /src/JackDriver.cpp | |
parent | f0b1962683cf24caa94f9176536a667a179cfc52 (diff) | |
download | patchage-014ba4fb2d72bdc481c2ba76bd53901a39725b86.tar.gz patchage-014ba4fb2d72bdc481c2ba76bd53901a39725b86.tar.bz2 patchage-014ba4fb2d72bdc481c2ba76bd53901a39725b86.zip |
Fix potential crash on module removal.
Don't "pretend" to set Jack buffer size when change fails.
git-svn-id: http://svn.drobilla.net/lad/patchage@260 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/JackDriver.cpp')
-rw-r--r-- | src/JackDriver.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/JackDriver.cpp b/src/JackDriver.cpp index ddb6744..77625bc 100644 --- a/src/JackDriver.cpp +++ b/src/JackDriver.cpp @@ -459,14 +459,24 @@ JackDriver::reset_xruns() } -void +bool JackDriver::set_buffer_size(jack_nframes_t size) { - if (buffer_size() == size) - return; + if (buffer_size() == size) { + return true; + } + + if (!m_client) { + m_buffer_size = size; + return true; + } - if (m_client && jack_set_buffer_size(m_client, size)) + if (jack_set_buffer_size(m_client, size)) { m_app->status_message("[JACK] ERROR: Unable to set buffer size"); + return false; + } else { + return true; + } } void |