deal with the situation when a (dynamic) event handler disconnects itself during its execution (and skips the event, too): this is used to crash but there is no reason it should

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38008 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2006-03-11 21:50:44 +00:00
parent 2e91d506b2
commit 7fce89b944

View File

@@ -1344,6 +1344,10 @@ bool wxEvtHandler::SearchDynamicEventTable( wxEvent& event )
wxDynamicEventTableEntry *entry = (wxDynamicEventTableEntry*)node->GetData();
#endif // WXWIN_COMPATIBILITY_EVENT_TYPES/!WXWIN_COMPATIBILITY_EVENT_TYPES
// get next node before (maybe) calling the event handler as it could
// call Disconnect() invalidating the current node
node = node->GetNext();
if ((event.GetEventType() == entry->m_eventType) && (entry->m_fn != 0))
{
wxEvtHandler *handler =
@@ -1358,8 +1362,6 @@ bool wxEvtHandler::SearchDynamicEventTable( wxEvent& event )
return true;
}
}
node = node->GetNext();
}
return false;