X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/412e0d47c05d69cb029e9dbd11b31ce24fb2377e..bec76e18352b3b0a94b0b54c8d66159722651e8b:/src/common/list.cpp?ds=inline diff --git a/src/common/list.cpp b/src/common/list.cpp index d400eff517..15535b3552 100644 --- a/src/common/list.cpp +++ b/src/common/list.cpp @@ -29,8 +29,8 @@ #include #ifndef WX_PRECOMP - #include "wx/defs.h" #include "wx/list.h" + #include "wx/crt.h" #endif #if !wxUSE_STL @@ -54,7 +54,7 @@ bool wxListKey::operator==(wxListKeyValue value) const // by not putting return here... case wxKEY_STRING: - return wxStrcmp(m_key.string, value.string) == 0; + return *m_key.string == *value.string; case wxKEY_INTEGER: return m_key.integer == value.integer; @@ -85,7 +85,7 @@ wxNodeBase::wxNodeBase(wxListBase *list, case wxKEY_STRING: // to be free()d later - m_key.string = wxStrdup(key.GetString()); + m_key.string = new wxString(key.GetString()); break; default: @@ -108,7 +108,7 @@ wxNodeBase::~wxNodeBase() { if ( m_list->m_keyType == wxKEY_STRING ) { - free(m_key.string); + delete m_key.string; } m_list->DetachNode(this); @@ -258,7 +258,7 @@ wxNodeBase *wxListBase::Append(long key, void *object) return AppendCommon(node); } -wxNodeBase *wxListBase::Append (const wxChar *key, void *object) +wxNodeBase *wxListBase::Append (const wxString& key, void *object) { wxCHECK_MSG( (m_keyType == wxKEY_STRING) || (m_keyType == wxKEY_NONE && m_count == 0), @@ -574,8 +574,6 @@ void wxListBase::DeleteNodes(wxNodeBase* first, wxNodeBase* last) // wxList (a.k.a. wxObjectList) // ----------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxList, wxObject) - wxList::wxList( int key_type ) : wxObjectList( (wxKeyType)key_type ) { @@ -596,8 +594,6 @@ static inline wxChar* MYcopystring(const wxChar* s) return wxStrcpy(copy, s); } -IMPLEMENT_DYNAMIC_CLASS(wxStringList, wxObject) - // instead of WX_DEFINE_LIST(wxStringListBase) we define this function // ourselves void wxStringListNode::DeleteData() @@ -742,12 +738,14 @@ void wxStringList::Sort() wxNode *wxStringList::Add(const wxChar *s) { - return (wxNode *)wxStringListBase::Append(MYcopystring(s)); + return (wxNode *)(wxStringListBase::Node *) + wxStringListBase::Append(MYcopystring(s)); } wxNode *wxStringList::Prepend(const wxChar *s) { - return (wxNode *)wxStringListBase::Insert(MYcopystring(s)); + return (wxNode *)(wxStringListBase::Node *) + wxStringListBase::Insert(MYcopystring(s)); } #endif // wxLIST_COMPATIBILITY @@ -758,8 +756,10 @@ wxNode *wxStringList::Prepend(const wxChar *s) WX_DEFINE_LIST(wxObjectList) // with wxUSE_STL wxStringList contains wxString objects, not pointers -void wxStringListBase::DeleteFunction( const wxString WXUNUSED(X) ) +void _WX_LIST_HELPER_wxStringListBase::DeleteFunction( wxString WXUNUSED(X) ) { } +wxStringListBase::BaseListType wxStringListBase::EmptyList; + #endif // !wxUSE_STL