From 2263a0f47744b033271ce4282d4f39e7413d3342 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Thu, 8 Sep 2016 11:04:35 -0400 Subject: [PATCH] Don't use wxArrayPtrVoid with casts, use std::vector --- src/effects/Effect.cpp | 30 +++++++++++++++--------------- src/effects/Effect.h | 4 ++-- src/effects/Equalization48x.cpp | 13 +++++++------ src/export/ExportMultiple.cpp | 5 ++--- src/export/ExportMultiple.h | 6 +++++- src/toolbars/ToolDock.h | 1 - src/widgets/FileHistory.cpp | 25 ++++++++++++++++--------- src/widgets/FileHistory.h | 3 ++- 8 files changed, 49 insertions(+), 38 deletions(-) diff --git a/src/effects/Effect.cpp b/src/effects/Effect.cpp index 0899116ce..bd3f55f31 100644 --- a/src/effects/Effect.cpp +++ b/src/effects/Effect.cpp @@ -2046,8 +2046,8 @@ void Effect::CopyInputTracks() void Effect::CopyInputTracks(int trackType) { // Reset map - mIMap.Clear(); - mOMap.Clear(); + mIMap.clear(); + mOMap.clear(); mOutputTracks = std::make_unique(); mOutputTracksType = trackType; @@ -2063,16 +2063,16 @@ void Effect::CopyInputTracks(int trackType) (trackType == Track::All && aTrack->IsSyncLockSelected())) { Track *o = mOutputTracks->Add(aTrack->Duplicate()); - mIMap.Add(aTrack); - mOMap.Add(o); + mIMap.push_back(aTrack); + mOMap.push_back(o); } } } Track *Effect::AddToOutputTracks(std::unique_ptr &&t) { - mIMap.Add(NULL); - mOMap.Add(t.get()); + mIMap.push_back(NULL); + mOMap.push_back(t.get()); return mOutputTracks->Add(std::move(t)); } @@ -2178,8 +2178,8 @@ void Effect::ReplaceProcessedTracks(const bool bGoodResult) mOutputTracks->Clear(); // Reset map - mIMap.Clear(); - mOMap.Clear(); + mIMap.clear(); + mOMap.clear(); //TODO:undo the non-gui ODTask transfer return; @@ -2187,7 +2187,7 @@ void Effect::ReplaceProcessedTracks(const bool bGoodResult) auto iterOut = mOutputTracks->begin(), iterEnd = mOutputTracks->end(); - size_t cnt = mOMap.GetCount(); + size_t cnt = mOMap.size(); size_t i = 0; for (; iterOut != iterEnd; ++i) { @@ -2195,7 +2195,7 @@ void Effect::ReplaceProcessedTracks(const bool bGoodResult) // If tracks were removed from mOutputTracks, then there will be // tracks in the map that must be removed from mTracks. while (i < cnt && mOMap[i] != o.get()) { - Track *t = (Track *) mIMap[i]; + const auto t = mIMap[i]; if (t) { mTracks->Remove(t); } @@ -2208,7 +2208,7 @@ void Effect::ReplaceProcessedTracks(const bool bGoodResult) // Remove the track from the output list...don't DELETE it iterOut = mOutputTracks->erase(iterOut); - Track *t = (Track *) mIMap[i]; + const auto t = mIMap[i]; if (t == NULL) { // This track is a NEW addition to output tracks; add it to mTracks @@ -2232,16 +2232,16 @@ void Effect::ReplaceProcessedTracks(const bool bGoodResult) // If tracks were removed from mOutputTracks, then there may be tracks // left at the end of the map that must be removed from mTracks. while (i < cnt) { - Track *t = (Track *) mIMap[i]; + const auto t = mIMap[i]; if (t) { - mTracks->Remove((Track *)mIMap[i]); + mTracks->Remove(t); } i++; } // Reset map - mIMap.Clear(); - mOMap.Clear(); + mIMap.clear(); + mOMap.clear(); // Make sure we processed everything wxASSERT(mOutputTracks->empty()); diff --git a/src/effects/Effect.h b/src/effects/Effect.h index aaa5f4456..b523bdb5d 100644 --- a/src/effects/Effect.h +++ b/src/effects/Effect.h @@ -494,8 +494,8 @@ private: bool mUIDebug; - wxArrayPtrVoid mIMap; - wxArrayPtrVoid mOMap; + std::vector mIMap; + std::vector mOMap; int mNumTracks; //v This is really mNumWaveTracks, per CountWaveTracks() and GetNumWaveTracks(). int mNumGroups; diff --git a/src/effects/Equalization48x.cpp b/src/effects/Equalization48x.cpp index 039115715..c6d1952d4 100644 --- a/src/effects/Equalization48x.cpp +++ b/src/effects/Equalization48x.cpp @@ -329,10 +329,11 @@ bool EffectEqualization48x::TrackCompare() mEffectEqualization->mM=(mEffectEqualization->mM&(~15))+1; AllocateBuffersWorkers(sMathPath&MATH_FUNCTION_THREADED); // Reset map - wxArrayPtrVoid SecondIMap; - wxArrayPtrVoid SecondOMap; - SecondIMap.Clear(); - SecondOMap.Clear(); + // PRL: These two maps aren't really used + std::vector SecondIMap; + std::vector SecondOMap; + SecondIMap.clear(); + SecondOMap.clear(); TrackList SecondOutputTracks; @@ -346,8 +347,8 @@ bool EffectEqualization48x::TrackCompare() (mEffectEqualization->mOutputTracksType == Track::All && aTrack->IsSyncLockSelected())) { auto o = aTrack->Duplicate(); - SecondIMap.Add(aTrack); - SecondIMap.Add(o.get()); + SecondIMap.push_back(aTrack); + SecondIMap.push_back(o.get()); SecondOutputTracks.Add(std::move(o)); } } diff --git a/src/export/ExportMultiple.cpp b/src/export/ExportMultiple.cpp index 8b5cf2f2b..db29ed1cf 100644 --- a/src/export/ExportMultiple.cpp +++ b/src/export/ExportMultiple.cpp @@ -925,9 +925,8 @@ int ExportMultiple::ExportMultipleByTrack(bool byName, } // Restore the selection states - for (size_t i = 0; i < mSelected.GetCount(); i++) { - selected[i]->SetSelected(true); - } + for (auto pTrack : mSelected) + pTrack->SetSelected(true); return ok ; } diff --git a/src/export/ExportMultiple.h b/src/export/ExportMultiple.h index 015bbddcc..65e83a4b5 100644 --- a/src/export/ExportMultiple.h +++ b/src/export/ExportMultiple.h @@ -29,6 +29,7 @@ class wxTextCtrl; class AudacityProject; class LabelTrack; class ShuttleGui; +class Track; class ExportMultiple final : public wxDialogWrapper { @@ -111,7 +112,10 @@ private: LabelTrack *mLabels; int mNumLabels; int mNumWaveTracks; - wxArrayPtrVoid mSelected; + + // PRL: This is never populated anywhere? + std::vector mSelected; + int mFilterIndex; /**< The index in the drop-down list of export formats (mFormat) of the selected export format. This list includes all possible diff --git a/src/toolbars/ToolDock.h b/src/toolbars/ToolDock.h index 212cc7ea3..a287df319 100644 --- a/src/toolbars/ToolDock.h +++ b/src/toolbars/ToolDock.h @@ -19,7 +19,6 @@ #include "ToolBar.h" -class wxArrayPtrVoid; class wxCommandEvent; class wxEraseEvent; class wxSizeEvent; diff --git a/src/widgets/FileHistory.cpp b/src/widgets/FileHistory.cpp index fdbbe4e19..9777be0c3 100644 --- a/src/widgets/FileHistory.cpp +++ b/src/widgets/FileHistory.cpp @@ -100,19 +100,27 @@ size_t FileHistory::GetCount() void FileHistory::UseMenu(wxMenu *menu) { - wxASSERT(mMenus.Index(menu) == wxNOT_FOUND); + auto end = mMenus.end(); + auto iter = std::find(mMenus.begin(), end, menu); + auto found = (iter != end); - if (mMenus.Index(menu) == wxNOT_FOUND) { - mMenus.Add(menu); + if (!found) + mMenus.push_back(menu); + else { + wxASSERT(false); } } void FileHistory::RemoveMenu(wxMenu *menu) { - wxASSERT(mMenus.Index(menu) != wxNOT_FOUND); + auto end = mMenus.end(); + auto iter = std::find(mMenus.begin(), end, menu); + auto found = (iter != end); - if (mMenus.Index(menu) != wxNOT_FOUND) { - mMenus.Remove(menu); + if (found) + mMenus.erase(iter); + else { + wxASSERT(false); } } @@ -151,9 +159,8 @@ void FileHistory::Save(wxConfigBase & config, const wxString & group) void FileHistory::AddFilesToMenu() { - for (size_t i = 0; i < mMenus.GetCount(); i++) { - AddFilesToMenu((wxMenu *) mMenus[i]); - } + for (auto pMenu : mMenus) + AddFilesToMenu(pMenu); } void FileHistory::AddFilesToMenu(wxMenu *menu) diff --git a/src/widgets/FileHistory.h b/src/widgets/FileHistory.h index 083d13cad..90a0c9064 100644 --- a/src/widgets/FileHistory.h +++ b/src/widgets/FileHistory.h @@ -11,6 +11,7 @@ #ifndef __AUDACITY_WIDGETS_FILEHISTORY__ #define __AUDACITY_WIDGETS_FILEHISTORY__ +#include #include #include #include @@ -43,7 +44,7 @@ class AUDACITY_DLL_API FileHistory size_t mMaxFiles; wxWindowID mIDBase; - wxArrayPtrVoid mMenus; + std::vector mMenus; wxArrayString mHistory; };