]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/wincmn.cpp
wxWindow::Show() works again
[wxWidgets.git] / src / common / wincmn.cpp
index 153a0408afaeed3b02aab2982ae1e799cf05f6a5..2fead4a77e5cec2d2bf84b12ae819c63bbb361ad 100644 (file)
@@ -178,7 +178,7 @@ wxWindowBase::~wxWindowBase()
     // Just in case we've loaded a top-level window via LoadNativeDialog but
     // we weren't a dialog class
     wxTopLevelWindows.DeleteObject(this);
-    
+
     wxASSERT_MSG( GetChildren().GetCount() == 0, "children not destroyed" );
 
     if ( m_windowValidator )
@@ -244,15 +244,21 @@ bool wxWindowBase::Close(bool force)
 bool wxWindowBase::DestroyChildren()
 {
     wxWindowList::Node *node;
-    while ( (node = GetChildren().GetFirst()) )
+    for ( ;; )
     {
+        // we iterate until the list becomes empty
+        node = GetChildren().GetFirst();
+        if ( !node )
+            break;
+
         wxWindow *child = node->GetData();
-       
-       wxASSERT_MSG( child, "m_children contains empty nodes" );
-       
+
+        wxASSERT_MSG( child, "children list contains empty nodes" );
+
         delete child;
-       
-        wxASSERT_MSG( !GetChildren().Find(child), "child didn't remove itself using RemoveChild()" );
+
+        wxASSERT_MSG( !GetChildren().Find(child),
+                      "child didn't remove itself using RemoveChild()" );
     }
 
     return TRUE;