From caa2490c0fb8053b1d416117a9619695d75af9e4 Mon Sep 17 00:00:00 2001 From: Ryan Norton Date: Wed, 6 Apr 2005 11:39:04 +0000 Subject: [PATCH] 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 --- src/common/sizer.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 ) -- 2.45.2