Added --use-stl to cnfigure, wxUSE_STL to setup0.h
Moved wx/datetime.inl contents to wx/datetime.h and removed inline redefinition hack. Implemented STL-like interface on top of wxList/wxArray, when wxUSE_STL=0. Implemented wxList-like and wxArray interfaces on top of std::list and std::vector, when wxUSE_STL=1. Added arrstr.h, moved wxArrayString declaration there; string.h #includes arrstr.h only if WXWIN_COMPATIBILITY_2_4 is enabled. Added WX_CLEAR_HASH_MAP, WX_CLEAR_HASH_TABLE, WX_CLEAR_LIST macros, to clear a wxHashMap, wxHashTable, wxList containing pointers: deletes pointers and makes container zero-sized. When wxUSE_STL=1, wxStringList works like a std::list<wxString>. Made wxBase compile when wxUSE_STL=1. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21768 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -475,18 +475,18 @@ void wxPluginLibrary::RegisterModules()
|
||||
|
||||
wxASSERT_MSG( m, _T("wxDynamicCast of wxModule failed") );
|
||||
|
||||
m_wxmodules.Append(m);
|
||||
m_wxmodules.push_back(m);
|
||||
wxModule::RegisterModule(m);
|
||||
}
|
||||
}
|
||||
|
||||
// FIXME: Likewise this is (well was) very similar to InitializeModules()
|
||||
|
||||
for ( wxModuleList::Node *node = m_wxmodules.GetFirst();
|
||||
node;
|
||||
node = node->GetNext())
|
||||
for ( wxModuleList::iterator it = m_wxmodules.begin();
|
||||
it != m_wxmodules.end();
|
||||
++it)
|
||||
{
|
||||
if( !node->GetData()->Init() )
|
||||
if( !(*it)->Init() )
|
||||
{
|
||||
wxLogDebug(_T("wxModule::Init() failed for wxPluginLibrary"));
|
||||
|
||||
@@ -497,13 +497,14 @@ void wxPluginLibrary::RegisterModules()
|
||||
// let the dtor Exit the rest on shutdown, (which we'll initiate
|
||||
// shortly).
|
||||
|
||||
wxModuleList::Node *oldNode = 0;
|
||||
wxModuleList::iterator oldNode = m_wxmodules.end();
|
||||
do {
|
||||
node = node->GetNext();
|
||||
delete oldNode;
|
||||
wxModule::UnregisterModule( node->GetData() );
|
||||
oldNode = node;
|
||||
} while( node );
|
||||
++it;
|
||||
if( oldNode != m_wxmodules.end() )
|
||||
m_wxmodules.erase(oldNode);
|
||||
wxModule::UnregisterModule( *it );
|
||||
oldNode = it;
|
||||
} while( it != m_wxmodules.end() );
|
||||
|
||||
--m_linkcount; // Flag us for deletion
|
||||
break;
|
||||
@@ -513,15 +514,15 @@ void wxPluginLibrary::RegisterModules()
|
||||
|
||||
void wxPluginLibrary::UnregisterModules()
|
||||
{
|
||||
wxModuleList::Node *node;
|
||||
wxModuleList::iterator it;
|
||||
|
||||
for ( node = m_wxmodules.GetFirst(); node; node = node->GetNext() )
|
||||
node->GetData()->Exit();
|
||||
for ( it = m_wxmodules.begin(); it != m_wxmodules.end(); ++it )
|
||||
(*it)->Exit();
|
||||
|
||||
for ( node = m_wxmodules.GetFirst(); node; node = node->GetNext() )
|
||||
wxModule::UnregisterModule( node->GetData() );
|
||||
for ( it = m_wxmodules.begin(); it != m_wxmodules.end(); ++it )
|
||||
wxModule::UnregisterModule( *it );
|
||||
|
||||
m_wxmodules.DeleteContents(TRUE);
|
||||
WX_CLEAR_LIST(wxModuleList, m_wxmodules);
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user