1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-09-23 07:29:46 +02:00

Bug1614: fix crash duplicating a clip

This commit is contained in:
Paul Licameli 2017-03-30 16:48:52 -04:00
parent 7bda40f656
commit 23dc35a18c
2 changed files with 5 additions and 4 deletions

View File

@ -198,7 +198,7 @@ EnvPoint *Envelope::AddPointAtEnd( double t, double val )
void Envelope::CopyFrom(const Envelope *e, double t0, double t1) void Envelope::CopyFrom(const Envelope *e, double t0, double t1)
{ {
wxASSERT( t0 < t1 ); wxASSERT( t0 <= t1 );
mOffset = wxMax(t0, e->mOffset); mOffset = wxMax(t0, e->mOffset);
mTrackLen = wxMin(t1, e->mOffset + e->mTrackLen) - mOffset; mTrackLen = wxMin(t1, e->mOffset + e->mTrackLen) - mOffset;

View File

@ -378,8 +378,10 @@ float Sequence::GetRMS(sampleCount start, sampleCount len, bool mayThrow) const
std::unique_ptr<Sequence> Sequence::Copy(sampleCount s0, sampleCount s1) const std::unique_ptr<Sequence> Sequence::Copy(sampleCount s0, sampleCount s1) const
{ {
if (s0 >= s1 || s0 >= mNumSamples || s1 < 0) auto dest = std::make_unique<Sequence>(mDirManager, mSampleFormat);
return {}; if (s0 >= s1 || s0 >= mNumSamples || s1 < 0) {
return dest;
}
int numBlocks = mBlock.size(); int numBlocks = mBlock.size();
@ -391,7 +393,6 @@ std::unique_ptr<Sequence> Sequence::Copy(sampleCount s0, sampleCount s1) const
wxUnusedVar(numBlocks); wxUnusedVar(numBlocks);
wxASSERT(b0 <= b1); wxASSERT(b0 <= b1);
auto dest = std::make_unique<Sequence>(mDirManager, mSampleFormat);
dest->mBlock.reserve(b1 - b0 + 1); dest->mBlock.reserve(b1 - b0 + 1);
SampleBuffer buffer(mMaxSamples, mSampleFormat); SampleBuffer buffer(mMaxSamples, mSampleFormat);