From: Vadim Zeitlin Date: Wed, 23 May 2007 23:38:27 +0000 (+0000) Subject: don't crash in dtor if the dialog had never been shown (patch 1723848) X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/86d870753c3d80d8ee2b7f09a56360f1e41faa9e don't crash in dtor if the dialog had never been shown (patch 1723848) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46183 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/msw/fdrepdlg.cpp b/src/msw/fdrepdlg.cpp index c1f7176452..8cb9af619b 100644 --- a/src/msw/fdrepdlg.cpp +++ b/src/msw/fdrepdlg.cpp @@ -349,20 +349,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;