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()
|
wxFindReplaceDialog::~wxFindReplaceDialog()
|
||||||
{
|
{
|
||||||
// the dialog might have been already deleted if the user closed it
|
if ( m_impl )
|
||||||
// manually but in this case we should have got a notification about it and
|
|
||||||
// the flagmust have been set
|
|
||||||
if ( !m_impl->WasClosedByUser() )
|
|
||||||
{
|
{
|
||||||
// if it wasn't, delete the dialog ourselves
|
// the dialog might have been already deleted if the user closed it
|
||||||
if ( !::DestroyWindow(GetHwnd()) )
|
// 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
|
// unsubclass the parent
|
||||||
delete m_impl;
|
delete m_impl;
|
||||||
|
}
|
||||||
|
|
||||||
// prevent the base class dtor from trying to hide us!
|
// prevent the base class dtor from trying to hide us!
|
||||||
m_isShown = false;
|
m_isShown = false;
|
||||||
|
Reference in New Issue
Block a user