git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16492
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
, m_next(sm_first)
{ sm_first = this; }
- ~wxClassInfo()
- {
- if (sm_first == this)
- {
- sm_first = m_next;
- }
- else
- {
- wxClassInfo * info = sm_first;
- while (info)
- {
- if (info->m_next == this)
- {
- info->m_next = m_next;
- break;
- }
- info = info->m_next;
- }
- }
- }
+ ~wxClassInfo();
wxObject *CreateObject() { return m_objectConstructor ? (*m_objectConstructor)() : 0; }
// wxClassInfo
// ----------------------------------------------------------------------------
+wxClassInfo::~wxClassInfo()
+{
+ // remove this object from the linked list of all class infos: if we don't
+ // do it, loading/unloading a DLL containing static wxClassInfo objects is
+ // not going to work
+ if ( this == sm_first )
+ {
+ sm_first = m_next;
+ }
+ else
+ {
+ wxClassInfo *info = sm_first;
+ while (info)
+ {
+ if ( info->m_next == this )
+ {
+ info->m_next = m_next;
+ break;
+ }
+
+ info = info->m_next;
+ }
+ }
+}
+
wxClassInfo *wxClassInfo::FindClass(const wxChar *className)
{
if ( sm_classTable )