1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-12-22 08:31:14 +01:00

TrackFactory functions return std::unique_ptr, although some callers...

... release() them for now.
This commit is contained in:
Paul Licameli
2016-03-02 14:59:31 -05:00
parent f42a953752
commit 5ef4dd46a5
31 changed files with 91 additions and 135 deletions

View File

@@ -63,15 +63,17 @@ using std::max;
bool WaveTrack::mMonoAsVirtualStereo;
#endif
WaveTrack* TrackFactory::DuplicateWaveTrack(WaveTrack &orig)
WaveTrack::Holder TrackFactory::DuplicateWaveTrack(WaveTrack &orig)
{
return (WaveTrack*)(orig.Duplicate().release());
return std::unique_ptr<WaveTrack>
{ static_cast<WaveTrack*>(orig.Duplicate().release()) };
}
WaveTrack *TrackFactory::NewWaveTrack(sampleFormat format, double rate)
WaveTrack::Holder TrackFactory::NewWaveTrack(sampleFormat format, double rate)
{
return new WaveTrack(mDirManager, format, rate);
return std::unique_ptr<WaveTrack>
{ safenew WaveTrack(mDirManager, format, rate) };
}
WaveTrack::WaveTrack(DirManager *projDirManager, sampleFormat format, double rate) :
@@ -1166,16 +1168,15 @@ bool WaveTrack::SyncLockAdjust(double oldT1, double newT1)
if (!p) return false;
TrackFactory *f = p->GetTrackFactory();
if (!f) return false;
WaveTrack *tmp = f->NewWaveTrack(GetSampleFormat(), GetRate());
auto tmp = f->NewWaveTrack(GetSampleFormat(), GetRate());
bool bResult = tmp->InsertSilence(0.0, newT1 - oldT1);
wxASSERT(bResult); // TO DO: Actually handle this.
wxUnusedVar(bResult);
tmp->Flush();
bResult = Paste(oldT1, tmp);
bResult = Paste(oldT1, tmp.get());
wxASSERT(bResult); // TO DO: Actually handle this.
wxUnusedVar(bResult);
delete tmp;
}
}
else if (newT1 < oldT1) {