From: Ryan Norton Date: Wed, 6 Apr 2005 11:39:04 +0000 (+0000) Subject: Fix memory leak when a spacer is added, and crash when a window is added before wxSiz... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/caa2490c0fb8053b1d416117a9619695d75af9e4 Fix memory leak when a spacer is added, and crash when a window is added before wxSizerItem::DeleteWindows git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33383 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/common/sizer.cpp b/src/common/sizer.cpp index e22859979b..36c63f9e10 100644 --- a/src/common/sizer.cpp +++ b/src/common/sizer.cpp @@ -388,7 +388,14 @@ void wxSizerItem::DeleteWindows() break; case Item_Window: + //We are deleting the window from this sizer - normally + //the window destroys the sizer associated with it, + //which might destroy this, which we don't want + m_window->SetContainingSizer(NULL); m_window->Destroy(); + //Putting this after the switch will result in a spacer + //not being deleted properly on destruction + m_kind = Item_None; break; case Item_Sizer: @@ -400,7 +407,6 @@ void wxSizerItem::DeleteWindows() wxFAIL_MSG( _T("unexpected wxSizerItem::m_kind") ); } - m_kind = Item_None; } void wxSizerItem::Show( bool show )