From 221e0efb9653e768d75bd3e55274d1ef4a841a0a Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Sat, 10 Oct 2020 20:24:41 +1100 Subject: [PATCH] timeline: fix double free on items Who the hell wrote this? It's all wrong for no reason and makes no sense Fixes #1222 --- app/widget/timelinewidget/trackview/trackview.cpp | 11 +++-------- app/widget/timelinewidget/trackview/trackview.h | 2 -- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/app/widget/timelinewidget/trackview/trackview.cpp b/app/widget/timelinewidget/trackview/trackview.cpp index b8a94fbca..c079a0b9b 100644 --- a/app/widget/timelinewidget/trackview/trackview.cpp +++ b/app/widget/timelinewidget/trackview/trackview.cpp @@ -68,10 +68,9 @@ TrackView::TrackView(Qt::Alignment vertical_alignment, QWidget *parent) : void TrackView::ConnectTrackList(TrackList *list) { if (list_ != nullptr) { - foreach (TrackViewItem* item, items_) { - delete item; + foreach (TrackOutput* track, list_->GetTracks()) { + RemoveTrack(track); } - items_.clear(); disconnect(list_, &TrackList::TrackHeightChanged, splitter_, &TrackViewSplitter::SetTrackHeight); disconnect(list_, &TrackList::TrackAdded, this, &TrackView::InsertTrack); @@ -82,11 +81,7 @@ void TrackView::ConnectTrackList(TrackList *list) if (list_ != nullptr) { foreach (TrackOutput* track, list_->GetTracks()) { - TrackViewItem* item = new TrackViewItem(track); - items_.append(item); - splitter_->Insert(track->Index(), - track->GetTrackHeightInPixels(), - item); + InsertTrack(track); } connect(list_, &TrackList::TrackHeightChanged, splitter_, &TrackViewSplitter::SetTrackHeight); diff --git a/app/widget/timelinewidget/trackview/trackview.h b/app/widget/timelinewidget/trackview/trackview.h index 1a7adc674..184ad51df 100644 --- a/app/widget/timelinewidget/trackview/trackview.h +++ b/app/widget/timelinewidget/trackview/trackview.h @@ -44,8 +44,6 @@ protected: virtual void resizeEvent(QResizeEvent *e) override; private: - QList items_; - TrackList* list_; TrackViewSplitter* splitter_;