mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-17 12:16:30 +01:00
fix crash initiated by never configuring track write sources when reloading a session, caused by earlier commits to avoid unnecessary write source resets
This commit is contained in:
parent
f2699194d3
commit
3fae5f15af
1 changed files with 9 additions and 3 deletions
|
|
@ -148,7 +148,7 @@ AudioDiskstream::free_working_buffers()
|
||||||
void
|
void
|
||||||
AudioDiskstream::non_realtime_input_change ()
|
AudioDiskstream::non_realtime_input_change ()
|
||||||
{
|
{
|
||||||
bool need_new_write_sources = false;
|
bool need_write_sources = false;
|
||||||
|
|
||||||
{
|
{
|
||||||
Glib::Threads::Mutex::Lock lm (state_lock);
|
Glib::Threads::Mutex::Lock lm (state_lock);
|
||||||
|
|
@ -157,6 +157,12 @@ AudioDiskstream::non_realtime_input_change ()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boost::shared_ptr<ChannelList> cr = channels.reader();
|
||||||
|
if (!cr->empty() && !cr->front()->write_source) {
|
||||||
|
need_write_sources = true;
|
||||||
|
cerr << name() << " no write sources!\n";
|
||||||
|
}
|
||||||
|
|
||||||
if (input_change_pending.type == IOChange::ConfigurationChanged) {
|
if (input_change_pending.type == IOChange::ConfigurationChanged) {
|
||||||
RCUWriter<ChannelList> writer (channels);
|
RCUWriter<ChannelList> writer (channels);
|
||||||
boost::shared_ptr<ChannelList> c = writer.get_copy();
|
boost::shared_ptr<ChannelList> c = writer.get_copy();
|
||||||
|
|
@ -169,7 +175,7 @@ AudioDiskstream::non_realtime_input_change ()
|
||||||
remove_channel_from (c, _n_channels.n_audio() - _io->n_ports().n_audio());
|
remove_channel_from (c, _n_channels.n_audio() - _io->n_ports().n_audio());
|
||||||
}
|
}
|
||||||
|
|
||||||
need_new_write_sources = true;
|
need_write_sources = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (input_change_pending.type & IOChange::ConnectionsChanged) {
|
if (input_change_pending.type & IOChange::ConnectionsChanged) {
|
||||||
|
|
@ -183,7 +189,7 @@ AudioDiskstream::non_realtime_input_change ()
|
||||||
/* implicit unlock */
|
/* implicit unlock */
|
||||||
}
|
}
|
||||||
|
|
||||||
if (need_new_write_sources) {
|
if (need_write_sources) {
|
||||||
reset_write_sources (false);
|
reset_write_sources (false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue