fix crash when using wxDataViewListStore::DeleteAllItems

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59359 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Francesco Montorsi
2009-03-06 00:01:11 +00:00
parent bfb9ad8b60
commit 8af28fabff
2 changed files with 6 additions and 3 deletions

View File

@@ -986,7 +986,7 @@ public:
void AppendItem( const wxVector<wxVariant> &values, wxClientData *data = NULL ); void AppendItem( const wxVector<wxVariant> &values, wxClientData *data = NULL );
void PrependItem( const wxVector<wxVariant> &values, wxClientData *data = NULL ); void PrependItem( const wxVector<wxVariant> &values, wxClientData *data = NULL );
void InsertItem( unsigned int row, const wxVector<wxVariant> &values, wxClientData *data = NULL ); void InsertItem( unsigned int row, const wxVector<wxVariant> &values, wxClientData *data = NULL );
void DeleteItem( unsigned pos ); void DeleteItem( unsigned int pos );
void DeleteAllItems(); void DeleteAllItems();
// override base virtuals // override base virtuals

View File

@@ -1415,7 +1415,8 @@ void wxDataViewListStore::PrependItem( const wxVector<wxVariant> &values, wxClie
RowPrepended(); RowPrepended();
} }
void wxDataViewListStore::InsertItem( unsigned int row, const wxVector<wxVariant> &values, wxClientData *data ) void wxDataViewListStore::InsertItem( unsigned int row, const wxVector<wxVariant> &values,
wxClientData *data )
{ {
wxDataViewListStoreLine *line = new wxDataViewListStoreLine( data ); wxDataViewListStoreLine *line = new wxDataViewListStoreLine( data );
line->m_values = values; line->m_values = values;
@@ -1424,7 +1425,7 @@ void wxDataViewListStore::InsertItem( unsigned int row, const wxVector<wxVarian
RowInserted( row ); RowInserted( row );
} }
void wxDataViewListStore::DeleteItem( unsigned row ) void wxDataViewListStore::DeleteItem( unsigned int row )
{ {
wxVector<wxDataViewListStoreLine*>::iterator it = m_data.begin() + row; wxVector<wxDataViewListStoreLine*>::iterator it = m_data.begin() + row;
m_data.erase( it ); m_data.erase( it );
@@ -1441,6 +1442,8 @@ void wxDataViewListStore::DeleteAllItems()
delete line; delete line;
} }
m_data.clear();
Reset( 0 ); Reset( 0 );
} }