From: Vadim Zeitlin Date: Fri, 25 Jan 2002 16:01:43 +0000 (+0000) Subject: replaced DeleteEvtHandler with a call to RemoveEventHandler X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/74f6bbf951eecb584076f84eb15ca31030abd675?ds=sidebyside replaced DeleteEvtHandler with a call to RemoveEventHandler git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13806 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/generic/scrlwing.cpp b/src/generic/scrlwing.cpp index 00af196417..cf4792b5fc 100644 --- a/src/generic/scrlwing.cpp +++ b/src/generic/scrlwing.cpp @@ -392,34 +392,14 @@ void wxScrollHelper::DeleteEvtHandler() // search for m_handler in the handler list if ( m_win && m_handler ) { - wxEvtHandler *handlerPrev = NULL, - *handler = m_win->GetEventHandler(); - while ( handler ) + if ( m_win->RemoveEventHandler(m_handler) ) { - if ( handler == m_handler ) - { - wxEvtHandler *handlerNext = handler->GetNextHandler(); - if ( handlerPrev ) - { - handlerPrev->SetNextHandler(handlerNext); - } - else - { - m_win->SetEventHandler(handlerNext); - } - - handler->SetNextHandler(NULL); - delete handler; - m_handler = NULL; - - return; - } - - handlerPrev = handler; - handler = handler->GetNextHandler(); + delete m_handler; } + //else: something is very wrong, so better [maybe] leak memory than + // risk a crash because of double deletion - wxFAIL_MSG( _T("where has our event handler gone?") ); + m_handler = NULL; } }