From c50adee05a8d21851410636175b643279bd0f62c Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Thu, 10 Mar 2005 21:18:04 +0000 Subject: [PATCH] fix crash when sending screen messages when there is no top screen --- stepmania/src/ScreenManager.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/stepmania/src/ScreenManager.cpp b/stepmania/src/ScreenManager.cpp index 1d1f2b4b73..c719a0f16d 100644 --- a/stepmania/src/ScreenManager.cpp +++ b/stepmania/src/ScreenManager.cpp @@ -528,6 +528,8 @@ void ScreenManager::MiniMenu( Menu* pDef, ScreenMessage SM_SendOnOK, ScreenMessa void ScreenManager::PopTopScreen( ScreenMessage SM ) { + ASSERT( m_ScreenStack.size() > 0 ); + Screen* pScreenToPop = m_ScreenStack.back(); // top menu pScreenToPop->HandleScreenMessage( SM_LoseFocus ); m_ScreenStack.erase(m_ScreenStack.end()-1, m_ScreenStack.end()); @@ -547,14 +549,20 @@ void ScreenManager::PopTopScreen( ScreenMessage SM ) void ScreenManager::PostMessageToTopScreen( ScreenMessage SM, float fDelay ) { - Screen* pTopScreen = m_ScreenStack.back(); - pTopScreen->PostScreenMessage( SM, fDelay ); + if( m_ScreenStack.size() ) + { + Screen* pTopScreen = m_ScreenStack.back(); + pTopScreen->PostScreenMessage( SM, fDelay ); + } } void ScreenManager::SendMessageToTopScreen( ScreenMessage SM ) { - Screen* pTopScreen = m_ScreenStack.back(); - pTopScreen->HandleScreenMessage( SM ); + if( m_ScreenStack.size() ) + { + Screen* pTopScreen = m_ScreenStack.back(); + pTopScreen->HandleScreenMessage( SM ); + } }