From 86d870753c3d80d8ee2b7f09a56360f1e41faa9e Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 23 May 2007 23:38:27 +0000 Subject: [PATCH] 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 --- src/msw/fdrepdlg.cpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) 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; -- 2.50.0