From 54567e81e144f142cecb1459084e7ee4f58f2b09 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Wed, 2 Mar 2005 11:09:05 +0000 Subject: [PATCH] fix pointer not removed after deleting --- stepmania/src/ScreenManager.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/stepmania/src/ScreenManager.cpp b/stepmania/src/ScreenManager.cpp index 60629c3ca0..99c5cc7689 100644 --- a/stepmania/src/ScreenManager.cpp +++ b/stepmania/src/ScreenManager.cpp @@ -296,11 +296,13 @@ void ScreenManager::PrepareScreen( const CString &sScreenName ) m_bZeroNextUpdate = true; // Delete previously prepared versions of the screen. - FOREACH( Screen*, m_vPreparedScreens, s ) + for( int i = (int)m_vPreparedScreens.size()-1; i>=0; i-- ) { - if( (*s)->m_sName == sScreenName ) + Screen *&pScreen = m_vPreparedScreens[i]; + if( pScreen->m_sName == sScreenName ) { - SAFE_DELETE( *s ); + SAFE_DELETE( pScreen ); + m_vPreparedScreens.erase( m_vPreparedScreens.begin()+i ); break; } }