diff --git a/src/Envelope.cpp b/src/Envelope.cpp index 1fb1b7da2..e483bb2b4 100644 --- a/src/Envelope.cpp +++ b/src/Envelope.cpp @@ -198,7 +198,7 @@ EnvPoint *Envelope::AddPointAtEnd( double t, double val ) void Envelope::CopyFrom(const Envelope *e, double t0, double t1) { - wxASSERT( t0 < t1 ); + wxASSERT( t0 <= t1 ); mOffset = wxMax(t0, e->mOffset); mTrackLen = wxMin(t1, e->mOffset + e->mTrackLen) - mOffset; diff --git a/src/Sequence.cpp b/src/Sequence.cpp index 955672150..726029298 100644 --- a/src/Sequence.cpp +++ b/src/Sequence.cpp @@ -378,8 +378,10 @@ float Sequence::GetRMS(sampleCount start, sampleCount len, bool mayThrow) const std::unique_ptr Sequence::Copy(sampleCount s0, sampleCount s1) const { - if (s0 >= s1 || s0 >= mNumSamples || s1 < 0) - return {}; + auto dest = std::make_unique(mDirManager, mSampleFormat); + if (s0 >= s1 || s0 >= mNumSamples || s1 < 0) { + return dest; + } int numBlocks = mBlock.size(); @@ -391,7 +393,6 @@ std::unique_ptr Sequence::Copy(sampleCount s0, sampleCount s1) const wxUnusedVar(numBlocks); wxASSERT(b0 <= b1); - auto dest = std::make_unique(mDirManager, mSampleFormat); dest->mBlock.reserve(b1 - b0 + 1); SampleBuffer buffer(mMaxSamples, mSampleFormat);