don't crash in dtor if the dialog had never been shown (patch 1723848) [backport from HEAD]
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@46184 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -381,20 +381,23 @@ wxFindReplaceDialog::wxFindReplaceDialog(wxWindow *parent,
|
||||
|
||||
wxFindReplaceDialog::~wxFindReplaceDialog()
|
||||
{
|
||||
// the dialog might have been already deleted if the user closed it
|
||||
// manually but in this case we should have got a notification about it and
|
||||
// the flagmust have been set
|
||||
if ( !m_impl->WasClosedByUser() )
|
||||
if ( m_impl )
|
||||
{
|
||||
// if it wasn't, delete the dialog ourselves
|
||||
if ( !::DestroyWindow(GetHwnd()) )
|
||||
// the dialog might have been already deleted if the user closed it
|
||||
// manually but in this case we should have got a notification about it
|
||||
// and the flag must have been set
|
||||
if ( !m_impl->WasClosedByUser() )
|
||||
{
|
||||
wxLogLastError(_T("DestroyWindow(find dialog)"));
|
||||
// if it wasn't, delete the dialog ourselves
|
||||
if ( !::DestroyWindow(GetHwnd()) )
|
||||
{
|
||||
wxLogLastError(_T("DestroyWindow(find dialog)"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// unsubclass the parent
|
||||
delete m_impl;
|
||||
// unsubclass the parent
|
||||
delete m_impl;
|
||||
}
|
||||
|
||||
// prevent the base class dtor from trying to hide us!
|
||||
m_isShown = false;
|
||||
|
Reference in New Issue
Block a user