]> git.saurik.com Git - wxWidgets.git/commitdiff
fix m_sizerPage memory leak for the wizards not using sizers (replaces patch 1708331...
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 30 Apr 2007 19:43:28 +0000 (19:43 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 30 Apr 2007 19:43:28 +0000 (19:43 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45722 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
include/wx/generic/wizard.h
src/generic/wizard.cpp

index a03f1d283be7d4695a7dde6fc75dd2858a9e8a2f..d254faba40402cda2e515dee607e68d85831eb9f 100644 (file)
@@ -160,6 +160,7 @@ All (Unix):
 All (GUI):
 
 - Allow status bar children in XRC (Edmunt Pienkowski)
+- Fix memory leak in wxWizard when not using sizers for the page layout
 
 wxMSW:
 
index 52940b2a82d058b51beba4c7271cdc23ba090e55..0b0f5bed6faf69a206b5a867e2b681a08eeb9e12 100644 (file)
@@ -44,6 +44,7 @@ public:
              const wxPoint& pos = wxDefaultPosition,
              long style = wxDEFAULT_DIALOG_STYLE);
     void Init();
+    virtual ~wxWizard();
 
     // implement base class pure virtuals
     virtual bool RunWizard(wxWizardPage *firstPage);
index 20c5e127501082fc5c3ce4dea2d82efb13fe79ff..c6581d6d390962a420067f66ee550b5a066f45b5 100644 (file)
@@ -312,6 +312,15 @@ bool wxWizard::Create(wxWindow *parent,
     return result;
 }
 
+wxWizard::~wxWizard()
+{
+    // normally we don't have to delete this sizer as it's deleted by the
+    // associated window but if we never used it or didn't set it as the window
+    // sizer yet, do delete it manually
+    if ( !m_usingSizer || !m_started )
+        delete m_sizerPage;
+}
+
 void wxWizard::AddBitmapRow(wxBoxSizer *mainColumn)
 {
     m_sizerBmpAndPage = new wxBoxSizer(wxHORIZONTAL);