X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e71a0aa95f767ab0302607b3c94dc155d72d5e61..f148f2bac3fb0fa6d984050fb940112da150aeff:/src/mac/combobox.cpp?ds=sidebyside diff --git a/src/mac/combobox.cpp b/src/mac/combobox.cpp index 830e8564a7..c3c5660bbf 100644 --- a/src/mac/combobox.cpp +++ b/src/mac/combobox.cpp @@ -414,31 +414,47 @@ int wxComboBox::DoInsert(const wxString& item, int pos) void wxComboBox::DoSetItemClientData(int n, void* clientData) { - return m_choice->SetClientData( n , clientData ) ; + return m_choice->DoSetItemClientData( n , clientData ) ; } void* wxComboBox::DoGetItemClientData(int n) const { - return m_choice->GetClientData( n ) ; + return m_choice->DoGetItemClientData( n ) ; } void wxComboBox::DoSetItemClientObject(int n, wxClientData* clientData) { - return m_choice->SetClientObject( n , clientData ) ; + return m_choice->DoSetItemClientObject( n , clientData ) ; } wxClientData* wxComboBox::DoGetItemClientObject(int n) const { - return m_choice->GetClientObject( n ) ; + return m_choice->DoGetItemClientObject( n ) ; +} + +void wxComboBox::FreeData() +{ + if ( HasClientObjectData() ) + { + size_t count = GetCount(); + for ( size_t n = 0; n < count; n++ ) + { + SetClientObject( n, NULL ); + } + } } void wxComboBox::Delete(int n) { + // force client object deletion + if( HasClientObjectData() ) + SetClientObject( n, NULL ); m_choice->Delete( n ); } void wxComboBox::Clear() { + FreeData(); m_choice->Clear(); }