Fix for crash when wxUSE_STL=1. wxDocument::DeleteAllViews might
delete "this", together with the list it is iterating over. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22090 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
a0749355ca
commit
d2e70462f1
@ -183,18 +183,20 @@ bool wxDocument::OnCloseDocument()
|
||||
bool wxDocument::DeleteAllViews()
|
||||
{
|
||||
wxDocManager* manager = GetDocumentManager();
|
||||
wxList::iterator it, en;
|
||||
|
||||
wxList::compatibility_iterator node = m_documentViews.GetFirst();
|
||||
while (node)
|
||||
for ( it = m_documentViews.begin(), en = m_documentViews.end();
|
||||
it != en;
|
||||
)
|
||||
{
|
||||
wxView *view = (wxView *)node->GetData();
|
||||
wxView *view = (wxView *)*it;
|
||||
if (!view->Close())
|
||||
return FALSE;
|
||||
|
||||
wxList::compatibility_iterator next = node->GetNext();
|
||||
wxList::iterator next = it; ++next;
|
||||
|
||||
delete view; // Deletes node implicitly
|
||||
node = next;
|
||||
it = next;
|
||||
}
|
||||
// If we haven't yet deleted the document (for example
|
||||
// if there were no views) then delete it.
|
||||
|
Loading…
Reference in New Issue
Block a user