prevent deletion of playlists on frozen tracks:
bug: 1) freeze a track 2) Session Cleanup > Cleanup unused sources 2a) confirm playlist deletion 3) quit, reload -> track is no longer frozen because _freeze_record.playlist is missing. session is in an odd state.
This commit is contained in:
parent
602839ffea
commit
619727ef73
@ -56,6 +56,9 @@ AudioTrack::AudioTrack (Session& sess, string name, Route::Flag flag, TrackMode
|
||||
|
||||
AudioTrack::~AudioTrack ()
|
||||
{
|
||||
if (_freeze_record.playlist) {
|
||||
_freeze_record.playlist->release();
|
||||
}
|
||||
}
|
||||
|
||||
boost::shared_ptr<Diskstream>
|
||||
@ -287,6 +290,7 @@ AudioTrack::set_state_part_two ()
|
||||
boost::shared_ptr<Playlist> pl = _session.playlists->by_name (prop->value());
|
||||
if (pl) {
|
||||
_freeze_record.playlist = boost::dynamic_pointer_cast<AudioPlaylist> (pl);
|
||||
_freeze_record.playlist->use();
|
||||
} else {
|
||||
_freeze_record.playlist.reset ();
|
||||
_freeze_record.state = NoFreeze;
|
||||
@ -621,6 +625,8 @@ AudioTrack::freeze_me (InterThreadInfo& itt)
|
||||
diskstream->use_playlist (boost::dynamic_pointer_cast<AudioPlaylist>(new_playlist));
|
||||
diskstream->set_record_enabled (false);
|
||||
|
||||
_freeze_record.playlist->use(); // prevent deletion
|
||||
|
||||
/* reset stuff that has already been accounted for in the freeze process */
|
||||
|
||||
set_gain (GAIN_COEFF_UNITY, this);
|
||||
|
Loading…
Reference in New Issue
Block a user