From 67ae8c8eb921d0e7176e809cdbd23a5d1867ade2 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 19 Aug 2011 14:45:08 +0000 Subject: Hopefully fix crash with empty IO matrix bundles (#4270). git-svn-id: svn://localhost/ardour2/branches/3.0@10009 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/bundle_manager.cc | 4 ++++ gtk2_ardour/io_selector.cc | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/gtk2_ardour/bundle_manager.cc b/gtk2_ardour/bundle_manager.cc index 2e85b6a030..6367eb6560 100644 --- a/gtk2_ardour/bundle_manager.cc +++ b/gtk2_ardour/bundle_manager.cc @@ -82,6 +82,10 @@ BundleEditorMatrix::set_state (BundleChannel c[2], bool s) PortMatrixNode::State BundleEditorMatrix::get_state (BundleChannel c[2]) const { + if (c[0].bundle->nchannels() == ChanCount::ZERO || c[1].bundle->nchannels() == ChanCount::ZERO) { + return PortMatrixNode::NOT_ASSOCIATED; + } + Bundle::PortList const& pl = c[OTHER].bundle->channel_ports (c[OTHER].channel); if (pl.empty ()) { return PortMatrixNode::NOT_ASSOCIATED; diff --git a/gtk2_ardour/io_selector.cc b/gtk2_ardour/io_selector.cc index 8b47c46f39..b9e19de7ad 100644 --- a/gtk2_ardour/io_selector.cc +++ b/gtk2_ardour/io_selector.cc @@ -156,6 +156,10 @@ IOSelector::set_state (ARDOUR::BundleChannel c[2], bool s) PortMatrixNode::State IOSelector::get_state (ARDOUR::BundleChannel c[2]) const { + if (c[0].bundle->nchannels() == ChanCount::ZERO || c[1].bundle->nchannels() == ChanCount::ZERO) { + return PortMatrixNode::NOT_ASSOCIATED; + } + ARDOUR::Bundle::PortList const & our_ports = c[_ours].bundle->channel_ports (c[_ours].channel); ARDOUR::Bundle::PortList const & other_ports = c[_other].bundle->channel_ports (c[_other].channel); -- cgit v1.2.3