diff --git a/stepmania/src/RageSoundReader_ChannelSplit.cpp b/stepmania/src/RageSoundReader_ChannelSplit.cpp index fdfafc0ab5..b03e16eabf 100644 --- a/stepmania/src/RageSoundReader_ChannelSplit.cpp +++ b/stepmania/src/RageSoundReader_ChannelSplit.cpp @@ -167,14 +167,15 @@ int RageSoundSplitterImpl::ReadBuffer() if( iMinFrameRequested > m_iBufferPositionFrames ) { int iEraseFrames = iMinFrameRequested - m_iBufferPositionFrames; + iEraseFrames = min( iEraseFrames, (int) m_sBuffer.size() ); m_sBuffer.erase( 0, iEraseFrames * sizeof(int16_t) * m_pSource->GetNumChannels() ); m_iBufferPositionFrames += iEraseFrames; } if( iMinFrameRequested != m_iBufferPositionFrames ) { - int iFrame = m_pSource->SetPosition( iMinFrameRequested ); - m_iBufferPositionFrames = iFrame; + m_pSource->SetPosition( iMinFrameRequested ); + m_iBufferPositionFrames = iMinFrameRequested; m_sBuffer.clear(); }