X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a6391d30221084cbd7146f8076141b697891b9d4..a689b6d6dd19f6c7d369079a8330cde24f3bf7aa:/src/common/object.cpp?ds=sidebyside diff --git a/src/common/object.cpp b/src/common/object.cpp index 7148e579b3..cb965e7c45 100644 --- a/src/common/object.cpp +++ b/src/common/object.cpp @@ -5,9 +5,9 @@ // Modified by: Ron Lee // Created: 04/01/98 // RCS-ID: $Id$ -// Copyright: (c) 1998 Julian Smart and Markus Holzem +// Copyright: (c) 1998 Julian Smart // (c) 2001 Ron Lee -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ @@ -136,6 +136,31 @@ void wxObject::operator delete[] (void * buf, const wxChar* WXUNUSED(fileName), // 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 )