From 17252a08528aa855a587003afbe4038f295be8fa Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Mon, 10 Sep 2007 21:44:00 +0000 Subject: [PATCH] fix iter memleak on ::Load called multiple times iMissIfOlderThanThisIndex -> iMissIfOlderThanThisRow Unjudged -> NotJudged --- stepmania/src/Player.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/stepmania/src/Player.cpp b/stepmania/src/Player.cpp index 51ea84822d..465b79017b 100644 --- a/stepmania/src/Player.cpp +++ b/stepmania/src/Player.cpp @@ -157,7 +157,6 @@ Player::Player( NoteData &nd, bool bVisible ) : m_NoteData(nd) m_pPrimaryScoreKeeper = NULL; m_pSecondaryScoreKeeper = NULL; m_pInventory = NULL; - m_pIterNotJudged = NULL; m_bPaused = false; @@ -375,7 +374,7 @@ void Player::Init( *b = false; } -static bool Unjudged( const TapNote &tn ) +static bool NotJudged( const TapNote &tn ) { if( tn.result.tns != TNS_None ) return false; @@ -513,7 +512,8 @@ void Player::Load() if( m_pPlayerStageStats ) SendComboMessages( m_pPlayerStageStats->m_iCurCombo, m_pPlayerStageStats->m_iCurMissCombo ); - m_pIterNotJudged = new NoteData::all_tracks_iterator( m_NoteData.GetTapNoteRangeAllTracks(iNoteRow, MAX_NOTE_ROW, Unjudged) ); + SAFE_DELETE( m_pIterNotJudged ); + m_pIterNotJudged = new NoteData::all_tracks_iterator( m_NoteData.GetTapNoteRangeAllTracks(iNoteRow, MAX_NOTE_ROW, NotJudged) ); } void Player::SendComboMessages( int iOldCombo, int iOldMissCombo ) @@ -2097,7 +2097,7 @@ done_checking_hopo: void Player::UpdateTapNotesMissedOlderThan( float fMissIfOlderThanSeconds ) { //LOG->Trace( "Steps::UpdateTapNotesMissedOlderThan(%f)", fMissIfOlderThanThisBeat ); - int iMissIfOlderThanThisIndex; + int iMissIfOlderThanThisRow; { const float fEarliestTime = GAMESTATE->m_fMusicSeconds - fMissIfOlderThanSeconds; bool bFreeze; @@ -2105,19 +2105,19 @@ void Player::UpdateTapNotesMissedOlderThan( float fMissIfOlderThanSeconds ) float fThrowAway; GAMESTATE->m_pCurSong->m_Timing.GetBeatAndBPSFromElapsedTime( fEarliestTime, fMissIfOlderThanThisBeat, fThrowAway, bFreeze ); - iMissIfOlderThanThisIndex = BeatToNoteRow( fMissIfOlderThanThisBeat ); + iMissIfOlderThanThisRow = BeatToNoteRow( fMissIfOlderThanThisBeat ); if( bFreeze ) { /* If there is a freeze on iMissIfOlderThanThisIndex, include this index too. * Otherwise we won't show misses for tap notes on freezes until the * freeze finishes. */ - iMissIfOlderThanThisIndex++; + iMissIfOlderThanThisRow++; } } NoteData::all_tracks_iterator &iter = *m_pIterNotJudged; - for( ; iter.Row() < iMissIfOlderThanThisIndex; ++iter ) + for( ; iter.Row() < iMissIfOlderThanThisRow; ++iter ) { TapNote &tn = *iter;