diff --git a/src/Menus.cpp b/src/Menus.cpp index b9ea5a88e..b13c0f769 100644 --- a/src/Menus.cpp +++ b/src/Menus.cpp @@ -3999,7 +3999,7 @@ void AudacityProject::OnPaste() double t1 = mViewInfo.selectedRegion.t1(); TrackListIterator iter(mTracks); - TrackListIterator clipIter(msClipboard); + TrackListIterator clipIter(msClipboard.get()); Track *n = iter.First(); Track *c = clipIter.First(); @@ -4139,7 +4139,7 @@ void AudacityProject::OnPaste() // selected tracks. if ( n && !c ) { - TrackListOfKindIterator clipWaveIter(Track::Wave, msClipboard); + TrackListOfKindIterator clipWaveIter(Track::Wave, msClipboard.get()); c = clipWaveIter.Last(); while (n) { @@ -4246,7 +4246,7 @@ bool AudacityProject::HandlePasteNothingSelected() return false; else { - TrackListIterator iterClip(msClipboard); + TrackListIterator iterClip(msClipboard.get()); Track* pClip = iterClip.First(); if (!pClip) return true; // nothing to paste diff --git a/src/Project.cpp b/src/Project.cpp index 35b7ccc42..a90444844 100644 --- a/src/Project.cpp +++ b/src/Project.cpp @@ -164,7 +164,7 @@ scroll information. It also has some status flags. #include "../images/AudacityLogoAlpha.xpm" -TrackList *AudacityProject::msClipboard = new TrackList(); +std::unique_ptr AudacityProject::msClipboard{ safenew TrackList() }; double AudacityProject::msClipT0 = 0.0; double AudacityProject::msClipT1 = 0.0; AudacityProject *AudacityProject::msClipProject = NULL; @@ -4166,17 +4166,13 @@ void AudacityProject::UpdateMixerBoard() //static TrackList *AudacityProject::GetClipboardTracks() { - return msClipboard; + return msClipboard.get(); } //static void AudacityProject::DeleteClipboard() { - if (msClipboard) { - msClipboard->Clear(); - delete msClipboard; - msClipboard = NULL; - } + msClipboard.reset(); } //static diff --git a/src/Project.h b/src/Project.h index 93a628274..a27a09cc8 100644 --- a/src/Project.h +++ b/src/Project.h @@ -549,7 +549,7 @@ public: TrackList *mLastSavedTracks; // Clipboard (static because it is shared by all projects) - static TrackList *msClipboard; + static std::unique_ptr msClipboard; static AudacityProject *msClipProject; static double msClipT0; static double msClipT1;