From b923311e00df9a70e247b900f724a39ebd264650 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Fri, 25 Feb 2005 06:04:31 +0000 Subject: [PATCH] fix OptionRow doesn't unsubscribe to Messages --- stepmania/src/OptionRow.cpp | 10 +++++++--- stepmania/src/OptionRow.h | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/stepmania/src/OptionRow.cpp b/stepmania/src/OptionRow.cpp index d1e463540a..b92184fe20 100644 --- a/stepmania/src/OptionRow.cpp +++ b/stepmania/src/OptionRow.cpp @@ -57,15 +57,19 @@ void OptionRow::Clear() m_Underline[p].clear(); } + ASSERT( m_pHand == NULL ); + + m_bFirstItemGoesDown = false; +} + +void OptionRow::DetachHandler() +{ if( m_pHand ) { FOREACH_CONST( CString, m_pHand->m_vsReloadRowMessages, m ) MESSAGEMAN->Unsubscribe( this, *m ); } - m_pHand = NULL; - - m_bFirstItemGoesDown = false; } void OptionRow::LoadNormal( const OptionRowDefinition &def, OptionRowHandler *pHand, bool bFirstItemGoesDown ) diff --git a/stepmania/src/OptionRow.h b/stepmania/src/OptionRow.h index 90b7ccb255..aee2607251 100644 --- a/stepmania/src/OptionRow.h +++ b/stepmania/src/OptionRow.h @@ -114,7 +114,7 @@ public: float fY, const ThemeMetric &cmdLabelOn ); - void DetachHandler() { m_pHand = NULL; } + void DetachHandler(); void PositionUnderlines( bool bShowUnderlines, float fTweenSeconds ); void PositionIcons( const ThemeMetric1D &fIconX, float fTweenSeconds );