Simplify by removing many std::move of shared_ptr to tracks...

... Don't need them, as we did with std::unique_ptr
This commit is contained in:
Paul Licameli 2018-11-19 13:17:28 -05:00
parent a0aa69a248
commit 41175e94cd
12 changed files with 47 additions and 49 deletions

View File

@ -392,7 +392,7 @@ bool LabelDialog::TransferDataFromWindow()
// Create the NEW track and add to track list
auto newTrack = mFactory.NewLabelTrack();
newTrack->SetName(name);
mTracks->Add(std::move(newTrack));
mTracks->Add( newTrack );
tndx++;
}

View File

@ -188,8 +188,7 @@ void MixAndRender(TrackList *tracks, TrackFactory *trackFactory,
return;
}
else {
uLeft = std::move(mixLeft),
uRight = std::move(mixRight);
uLeft = mixLeft, uRight = mixRight;
#if 0
int elapsedMS = wxGetElapsedTime();
double elapsedTime = elapsedMS * 0.001;

View File

@ -4197,7 +4197,7 @@ AudacityProject::AddImportedTracks(const FilePath &fileName,
auto first = group.begin()->get();
auto nChannels = group.size();
for (auto &uNewTrack : group) {
auto newTrack = mTracks->Add(std::move(uNewTrack));
auto newTrack = mTracks->Add( uNewTrack );
results.push_back(newTrack->SharedPointer());
}
mTracks->GroupChannels(*first, nChannels);
@ -5226,7 +5226,7 @@ void AudacityProject::OnAudioIOStopRecording()
// Make a track with labels for recording errors
auto uTrack = GetTrackFactory()->NewLabelTrack();
auto pTrack = uTrack.get();
GetTracks()->Add( std::move(uTrack) );
GetTracks()->Add( uTrack );
/* i18n-hint: A name given to a track, appearing as its menu button.
The translation should be short or else it will not display well.
At most, about 11 Latin characters.

View File

@ -706,11 +706,11 @@ auto TrackList::FindLeader( Track *pTrack )
void TrackList::Permute(const std::vector<TrackNodePointer> &permutation)
{
for (const auto iter : permutation) {
ListOfTracks::value_type track = std::move(*iter.first);
ListOfTracks::value_type track = *iter.first;
erase(iter.first);
Track *pTrack = track.get();
pTrack->SetOwner(mSelf,
{ insert(ListOfTracks::end(), std::move(track)), this });
{ insert(ListOfTracks::end(), track), this });
}
auto n = getBegin();
RecalcPositions(n);
@ -805,7 +805,7 @@ void TrackList::GroupChannels(
THROW_INCONSISTENCY_EXCEPTION;
}
auto TrackList::Replace(Track * t, ListOfTracks::value_type &&with) ->
auto TrackList::Replace(Track * t, const ListOfTracks::value_type &with) ->
ListOfTracks::value_type
{
ListOfTracks::value_type holder;
@ -813,10 +813,10 @@ auto TrackList::Replace(Track * t, ListOfTracks::value_type &&with) ->
auto node = t->GetNode();
t->SetOwner({}, {});
holder = std::move(*node.first);
holder = *node.first;
Track *pTrack = with.get();
*node.first = std::move(with);
*node.first = with;
pTrack->SetOwner(mSelf, node);
pTrack->SetId( t->GetId() );
RecalcPositions(node);
@ -835,7 +835,7 @@ TrackNodePointer TrackList::Remove(Track *t)
t->SetOwner({}, {});
if ( !isNull( node ) ) {
ListOfTracks::value_type holder = std::move( *node.first );
ListOfTracks::value_type holder = *node.first;
result = getNext( node );
erase(node.first);
@ -973,7 +973,7 @@ void TrackList::SwapNodes(TrackNodePointer s1, TrackNodePointer s2)
saved.resize( nn );
// Save them in backwards order
while( nn-- )
saved[nn] = std::move( *s.first ), s.first = erase(s.first);
saved[nn] = *s.first, s.first = erase(s.first);
};
doSave( saved1, s1 );
@ -992,7 +992,7 @@ void TrackList::SwapNodes(TrackNodePointer s1, TrackNodePointer s2)
// Insert before s, and reassign s to point at the new node before
// old s; which is why we saved pointers in backwards order
pTrack->SetOwner(mSelf,
s = { insert(s.first, std::move(pointer)), this } );
s = { insert(s.first, pointer), this } );
};
// This does not invalidate s2 even when it equals s1:
doInsert( saved2, s1 );
@ -1216,8 +1216,7 @@ TrackList::RegisterPendingChangedTrack( Updater updater, Track *src )
void TrackList::RegisterPendingNewTrack( const std::shared_ptr<Track> &pTrack )
{
auto copy = pTrack;
Add<Track>( std::move( copy ) );
Add<Track>( pTrack );
pTrack->SetId( TrackId{} );
}
@ -1290,7 +1289,7 @@ bool TrackList::ApplyPendingTracks()
if (pendingTrack) {
auto src = FindById( pendingTrack->GetId() );
if (src)
this->Replace(src, std::move(pendingTrack)), result = true;
this->Replace(src, pendingTrack), result = true;
else
// Perhaps a track marked for pending changes got deleted by
// some other action. Recreate it so we don't lose the
@ -1302,7 +1301,7 @@ bool TrackList::ApplyPendingTracks()
// If there are tracks to reinstate, append them to the list.
for (auto &pendingTrack : reinstated)
if (pendingTrack)
this->Add(std::move(pendingTrack)), result = true;
this->Add( pendingTrack ), result = true;
// Put the pending added tracks back into the list, preserving their
// positions.

View File

@ -1391,7 +1391,8 @@ public:
/// Replace first track with second track, give back a holder
/// Give the replacement the same id as the replaced
ListOfTracks::value_type Replace(Track * t, ListOfTracks::value_type &&with);
ListOfTracks::value_type Replace(
Track * t, const ListOfTracks::value_type &with);
/// Remove this Track or all children of this TrackList.
/// Return an iterator to what followed the removed track.

View File

@ -2087,7 +2087,7 @@ Effect::AddedAnalysisTrack::AddedAnalysisTrack(Effect *pEffect, const wxString &
mpTrack = pTrack.get();
if (!name.empty())
pTrack->SetName(name);
pEffect->mTracks->Add(std::move(pTrack));
pEffect->mTracks->Add( pTrack );
}
Effect::AddedAnalysisTrack::AddedAnalysisTrack(AddedAnalysisTrack &&that)
@ -2134,7 +2134,7 @@ Effect::ModifiedAnalysisTrack::ModifiedAnalysisTrack
// So it's okay that we cast it back to const
mpOrigTrack =
pEffect->mTracks->Replace(const_cast<LabelTrack*>(pOrigTrack),
std::move(newTrack) );
newTrack );
}
Effect::ModifiedAnalysisTrack::ModifiedAnalysisTrack(ModifiedAnalysisTrack &&that)
@ -2156,7 +2156,7 @@ Effect::ModifiedAnalysisTrack::~ModifiedAnalysisTrack()
// not committed -- DELETE the label track
// mpOrigTrack came from mTracks which we own but expose as const to subclasses
// So it's okay that we cast it back to const
mpEffect->mTracks->Replace(mpTrack, std::move(mpOrigTrack));
mpEffect->mTracks->Replace(mpTrack, mpOrigTrack);
}
}
@ -2195,7 +2195,7 @@ void Effect::ReplaceProcessedTracks(const bool bGoodResult)
size_t i = 0;
for (; iterOut != iterEnd; ++i) {
ListOfTracks::value_type o = std::move(*iterOut);
ListOfTracks::value_type o = *iterOut;
// 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()) {
@ -2216,19 +2216,18 @@ void Effect::ReplaceProcessedTracks(const bool bGoodResult)
if (t == NULL)
{
// This track is a NEW addition to output tracks; add it to mTracks
mTracks->Add(std::move(o));
mTracks->Add( o );
}
else
{
// Replace mTracks entry with the NEW track
auto newTrack = o.get();
mTracks->Replace(t, std::move(o));
mTracks->Replace(t, o);
// If the track is a wave track,
// Swap the wavecache track the ondemand task uses, since now the NEW
// one will be kept in the project
if (ODManager::IsInstanceCreated()) {
ODManager::Instance()->ReplaceWaveTrack( t, newTrack );
ODManager::Instance()->ReplaceWaveTrack( t, o.get() );
}
}
}
@ -2544,12 +2543,12 @@ void Effect::Preview(bool dryOnly)
mixLeft->Offset(-mixLeft->GetStartTime());
mixLeft->SetSelected(true);
mixLeft->SetDisplay(WaveTrack::NoDisplay);
auto pLeft = mTracks->Add(std::move(mixLeft));
auto pLeft = mTracks->Add( mixLeft );
Track *pRight{};
if (mixRight) {
mixRight->Offset(-mixRight->GetStartTime());
mixRight->SetSelected(true);
pRight = mTracks->Add(std::move(mixRight));
pRight = mTracks->Add( mixRight );
}
mTracks->GroupChannels(*pLeft, pRight ? 2 : 1);
}
@ -2559,7 +2558,7 @@ void Effect::Preview(bool dryOnly)
auto dest = src->Copy(mT0, t1);
dest->SetSelected(src->GetSelected());
static_cast<WaveTrack*>(dest.get())->SetDisplay(WaveTrack::NoDisplay);
mTracks->Add(std::move(dest));
mTracks->Add( dest );
}
}
}

View File

@ -348,7 +348,7 @@ bool EffectEqualization48x::TrackCompare()
auto o = aTrack->Duplicate();
SecondIMap.push_back(aTrack);
SecondIMap.push_back(o.get());
SecondOutputTracks.push_back(std::move(o));
SecondOutputTracks.push_back( o );
}
}

View File

@ -20,11 +20,11 @@
// private helper classes and functions
namespace {
void FinishCopy
(const Track *n, Track::Holder &&dest, TrackList &list)
(const Track *n, const Track::Holder &dest, TrackList &list)
{
Track::FinishCopy( n, dest.get() );
if (dest)
list.Add(std::move(dest));
list.Add( dest );
}
// Handle text paste (into active label), if any. Return true if did paste.
@ -124,7 +124,7 @@ bool DoPasteNothingSelected(AudacityProject &project)
pNewTrack->SetSelected(true);
if (uNewTrack)
FinishCopy(pClip, std::move(uNewTrack), *tracks);
FinishCopy(pClip, uNewTrack, *tracks);
else
Track::FinishCopy(pClip, pNewTrack);
}
@ -303,13 +303,13 @@ void OnCut(const CommandContext &context)
// Since portsmf has a built-in cut operator, we use that instead
auto dest = n->Cut(selectedRegion.t0(),
selectedRegion.t1());
FinishCopy(n, std::move(dest), newClipboard);
FinishCopy(n, dest, newClipboard);
},
#endif
[&](Track *n) {
auto dest = n->Copy(selectedRegion.t0(),
selectedRegion.t1());
FinishCopy(n, std::move(dest), newClipboard);
FinishCopy(n, dest, newClipboard);
}
);
@ -405,7 +405,7 @@ void OnCopy(const CommandContext &context)
for (auto n : tracks->Selected()) {
auto dest = n->Copy(selectedRegion.t0(),
selectedRegion.t1());
FinishCopy(n, std::move(dest), newClipboard);
FinishCopy(n, dest, newClipboard);
}
// Survived possibility of exceptions. Commit changes to the clipboard now.
@ -702,7 +702,7 @@ void OnDuplicate(const CommandContext &context)
selectedRegion.t1(), false);
dest->Init(*n);
dest->SetOffset(wxMax(selectedRegion.t0(), n->GetOffset()));
tracks->Add(std::move(dest));
tracks->Add( dest );
// This break is really needed, else we loop infinitely
if (n == last)
@ -733,7 +733,7 @@ void OnSplitCut(const CommandContext &context)
selectedRegion.t0(),
selectedRegion.t1());
if (dest)
FinishCopy(n, std::move(dest), newClipboard);
FinishCopy(n, dest, newClipboard);
},
[&](Track *n) {
dest = n->Copy(selectedRegion.t0(),
@ -741,7 +741,7 @@ void OnSplitCut(const CommandContext &context)
n->Silence(selectedRegion.t0(),
selectedRegion.t1());
if (dest)
FinishCopy(n, std::move(dest), newClipboard);
FinishCopy(n, dest, newClipboard);
}
);
@ -926,7 +926,7 @@ void OnSplitNew(const CommandContext &context)
dest = wt->SplitCut(newt0, newt1);
if (dest) {
dest->SetOffset(wxMax(newt0, offset));
FinishCopy(wt, std::move(dest), *tracks);
FinishCopy(wt, dest, *tracks);
}
}
#if 0
@ -938,7 +938,7 @@ void OnSplitNew(const CommandContext &context)
viewInfo.selectedRegion.t1());
if (dest) {
dest->SetOffset(wxMax(0, n->GetOffset()));
FinishCopy(n, std::move(dest), *tracks);
FinishCopy(n, dest, *tracks);
}
}
#endif

View File

@ -117,7 +117,7 @@ AudacityProject *DoImportMIDI(
if (::ImportMIDI(fileName, newTrack.get())) {
pProject->SelectNone();
auto pTrack = tracks->Add(std::move(newTrack));
auto pTrack = tracks->Add( newTrack );
pTrack->SetSelected(true);
pProject->PushState(wxString::Format(_("Imported MIDI from '%s'"),
@ -464,7 +464,7 @@ void OnImportLabels(const CommandContext &context)
project.SelectNone();
newTrack->SetSelected(true);
tracks->Add(std::move(newTrack));
tracks->Add( newTrack );
project.PushState(wxString::
Format(_("Imported labels from '%s'"), fileName),

View File

@ -201,7 +201,7 @@ void EditClipboardByLabel(
{
Track::FinishCopy( wt, dest.get() );
if( !merged )
merged = std::move(dest);
merged = dest;
else
{
// Paste to the beginning; unless this is the first region,
@ -227,7 +227,7 @@ void EditClipboardByLabel(
regions.at(i + 1).start - region.end);
}
if( merged )
newClipboard.Add( std::move(merged) );
newClipboard.Add( merged );
}
// Survived possibility of exceptions. Commit changes to the clipboard now.

View File

@ -59,10 +59,10 @@ void DoMixAndRender
// Add NEW tracks
auto pNewLeft = tracks->Add(std::move(uNewLeft));
auto pNewLeft = tracks->Add( uNewLeft );
decltype(pNewLeft) pNewRight{};
if (uNewRight)
pNewRight = tracks->Add(std::move(uNewRight));
pNewRight = tracks->Add( uNewRight );
// Do this only after adding tracks to the list
tracks->GroupChannels(*pNewLeft, pNewRight ? 2 : 1);
@ -1188,7 +1188,7 @@ void OnScoreAlign(const CommandContext &context)
}
if (result == SA_SUCCESS) {
tracks->Replace(nt, std::move(holder));
tracks->Replace(nt, holder);
project.RedrawProject();
AudacityMessageBox(wxString::Format(
_("Alignment completed: MIDI from %.2f to %.2f secs, Audio from %.2f to %.2f secs."),

View File

@ -1339,7 +1339,7 @@ void ControlToolBar::SetupCutPreviewTracks(double WXUNUSED(playStart), double cu
auto newTrack = track1->Duplicate();
newTrack->Clear(cutStart, cutEnd);
cutPreviewTracks->Add(std::move(newTrack));
cutPreviewTracks->Add( newTrack );
}
// use NOTHROW-GUARANTEE:
mCutPreviewTracks = cutPreviewTracks;