summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-04-10 20:45:39 +0000
committerDavid Robillard <d@drobilla.net>2012-04-10 20:45:39 +0000
commit99ba7de59182a0f474c92a862d42c53ccd56ada2 (patch)
tree94b5e517f50ac4f82a60835ac2cc07bb4d88f9b0 /libs
parentaa22f85c1be958f6d6e6ec4d1010ba4b41e0cbe9 (diff)
Fix failed assertion with plugins with only an audio output are inserted on a MIDI track. This logic is probably completely wrong (i.e. it shouldn't be Split in the first place), but it fixes the crash, anyway.
git-svn-id: svn://localhost/ardour2/branches/3.0@11876 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/plugin_insert.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc
index a03c25ee72..796ec9420c 100644
--- a/libs/ardour/plugin_insert.cc
+++ b/libs/ardour/plugin_insert.cc
@@ -340,9 +340,12 @@ PluginInsert::connect_and_run (BufferSet& bufs, pframes_t nframes, framecnt_t of
/* copy the first stream's buffer contents to the others */
/* XXX: audio only */
- Sample const * mono = bufs.get_audio (in_map.get (DataType::AUDIO, 0, &valid)).data (offset);
- for (uint32_t i = in_streams.n_audio(); i < natural_input_streams().n_audio(); ++i) {
- memcpy (bufs.get_audio (in_map.get (DataType::AUDIO, i, &valid)).data (offset), mono, sizeof (Sample) * nframes);
+ uint32_t first_idx = in_map.get (DataType::AUDIO, 0, &valid);
+ if (valid) {
+ Sample const * mono = bufs.get_audio (first_idx).data (offset);
+ for (uint32_t i = in_streams.n_audio(); i < natural_input_streams().n_audio(); ++i) {
+ memcpy (bufs.get_audio (in_map.get (DataType::AUDIO, i, &valid)).data (offset), mono, sizeof (Sample) * nframes);
+ }
}
}