nodes/timeline: correctly detect when tracks are removed from the graph

Fixes several segfaults that could result from this occurring.
This commit is contained in:
itsmattkc
2020-04-27 01:01:12 +10:00
parent 981860b60b
commit f61321d68b
11 changed files with 92 additions and 63 deletions
+4 -4
View File
@@ -347,13 +347,13 @@ void TrackPlaceBlockCommand::redo_internal()
added_track_count_ = 0;
// Get track (or make it if necessary)
while (track_index_ >= timeline_->Tracks().size()) {
while (track_index_ >= timeline_->GetTracks().size()) {
timeline_->AddTrack();
added_track_count_++;
}
track_ = timeline_->TrackAt(track_index_);
track_ = timeline_->GetTrackAt(track_index_);
append_ = (in_ >= track_->track_length());
@@ -610,7 +610,7 @@ void TrackCleanGapsCommand::redo_internal()
GapBlock* on_gap = nullptr;
QList<GapBlock*> consecutive_gaps;
TrackOutput* track = track_list_->TrackAt(track_index_);
TrackOutput* track = track_list_->GetTrackAt(track_index_);
foreach (Block* b, track->Blocks()) {
if (b) {
@@ -657,7 +657,7 @@ void TrackCleanGapsCommand::redo_internal()
void TrackCleanGapsCommand::undo_internal()
{
TrackOutput* track = track_list_->TrackAt(track_index_);
TrackOutput* track = track_list_->GetTrackAt(track_index_);
// Restored removed end gaps
foreach (GapBlock* gap, removed_end_gaps_) {