]> git.saurik.com Git - wxWidgets.git/commitdiff
Free memory of m_root
authorRobert Roebling <robert@roebling.de>
Mon, 19 Nov 2007 13:42:01 +0000 (13:42 +0000)
committerRobert Roebling <robert@roebling.de>
Mon, 19 Nov 2007 13:42:01 +0000 (13:42 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50082 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/generic/datavgen.cpp

index adcf1b358224923c1d259ecbcd082107627c95fc..2b3a0180e60f88ab5110875c823d0aa6d7e3dd79 100644 (file)
@@ -3231,6 +3231,11 @@ void BuildTreeHelper( wxDataViewModel * model,  wxDataViewItem & item, wxDataVie
 
 void wxDataViewMainWindow::BuildTree(wxDataViewModel * model)
 {
+    DestroyTree();
+
+    m_root = new wxDataViewTreeNode( NULL );
+    m_root->SetHasChildren(true);
+
     //First we define a invalid item to fetch the top-level elements
     wxDataViewItem item;
     SortPrepare();
@@ -3255,9 +3260,12 @@ void DestroyTreeHelper( wxDataViewTreeNode * node )
 
 void wxDataViewMainWindow::DestroyTree()
 {
-    DestroyTreeHelper(m_root);
-    m_root->SetSubTreeCount(0);
-    m_count = 0 ;
+    if (m_root)
+    {
+        DestroyTreeHelper(m_root);
+        m_count = 0;
+        m_root = NULL;
+    }
 }
 
 void wxDataViewMainWindow::OnChar( wxKeyEvent &event )
@@ -3784,6 +3792,8 @@ bool wxDataViewCtrl::AssociateModel( wxDataViewModel *model )
 
     model->AddNotifier( m_notifier );
 
+    m_clientArea->DestroyTree();
+    
     m_clientArea->BuildTree(model);
 
     m_clientArea->UpdateDisplay();