From ffac3acbca971a66d5d764ef1c30f99f959944ea Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Thu, 30 Nov 2006 21:04:51 +0000 Subject: [PATCH] fix up infinite loop at EOF --- stepmania/src/RageSoundReader_SpeedChange.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/stepmania/src/RageSoundReader_SpeedChange.cpp b/stepmania/src/RageSoundReader_SpeedChange.cpp index eac6af2a72..8aa0c92018 100644 --- a/stepmania/src/RageSoundReader_SpeedChange.cpp +++ b/stepmania/src/RageSoundReader_SpeedChange.cpp @@ -194,7 +194,7 @@ bool RageSoundReader_SpeedChange::Step() { /* We're at EOF. Flush the remaining data, if any. */ m_iUncorrelatedPos = m_Channels[0].m_iCorrelatedPos; - return m_iUncorrelatedPos < m_iDataBufferAvailFrames; + return true; } /* Starting at our preferred position (m_iUncorrelatedPos), within GetToleranceFrames(), @@ -247,8 +247,9 @@ int RageSoundReader_SpeedChange::Read( char *buf, unsigned iLen ) if( iCursorAvail == 0 ) { - if( !Step() ) - return 0; + Step(); + if( !GetCursorAvail() ) + return 0; // EOF continue; }