From 99ba7de59182a0f474c92a862d42c53ccd56ada2 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 10 Apr 2012 20:45:39 +0000 Subject: 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 --- libs/ardour/plugin_insert.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'libs/ardour/plugin_insert.cc') 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); + } } } -- cgit v1.2.3