Fix wxPluginLibrary wxClassInfo pointers initialization.

The values of m_ourFirst and m_ourLast were inversed in wxPluginLibrary ctor.
Fix this and explain in a comment that "first" and "last" here refer to the
order in the linked list and not the chronological order.

Closes #14483.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72533 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-09-20 23:12:51 +00:00
parent 89b3361ec2
commit 7cc3d0e004

View File

@@ -79,20 +79,21 @@ wxPluginLibrary::wxPluginLibrary(const wxString &libname, int flags)
const wxClassInfo* const oldFirst = wxClassInfo::GetFirst(); const wxClassInfo* const oldFirst = wxClassInfo::GetFirst();
Load( libname, flags ); Load( libname, flags );
// It is simple to know what is the last object we registered, it's just // It is simple to know what is the first object in the linked list of
// the new head of the wxClassInfo list: // wxClassInfo that we registered (it's also the last one chronologically),
m_ourLast = wxClassInfo::GetFirst(); // it's just the new head of the wxClassInfo list:
m_ourFirst = wxClassInfo::GetFirst();
// But to find the first wxClassInfo created by this library we need to // But to find the first wxClassInfo created by this library we need to
// iterate until we get to the previous head as we don't have the links in // iterate until we get to the previous head as we don't have the links in
// the backwards direction: // the backwards direction:
if ( m_ourLast != oldFirst ) if ( m_ourFirst != oldFirst )
{ {
for ( const wxClassInfo* info = m_ourLast; ; info = info->GetNext() ) for ( const wxClassInfo* info = m_ourFirst; ; info = info->GetNext() )
{ {
if ( info->GetNext() == oldFirst ) if ( info->GetNext() == oldFirst )
{ {
m_ourFirst = info; m_ourLast = info;
break; break;
} }
} }