]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dynload.h
Fix bug with unloading wxPluginLibrary objects in "wrong" order.
[wxWidgets.git] / include / wx / dynload.h
index d4c710d9402cbb6860cf8476b9494aa85ee60952..bb2997bb4f7fcc3d657527f2acc5070863a28e4b 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:         dynload.h
+// Name:         wx/dynload.h
 // Purpose:      Dynamic loading framework
 // Author:       Ron Lee, David Falkinder, Vadim Zeitlin and a cast of 1000's
 //               (derived in part from dynlib.cpp (c) 1998 Guilhem Lavaux)
@@ -71,7 +71,7 @@ public:
     void  RefObj() { ++m_objcount; }
     void  UnrefObj()
     {
-        wxASSERT_MSG( m_objcount > 0, _T("Too many objects deleted??") );
+        wxASSERT_MSG( m_objcount > 0, wxT("Too many objects deleted??") );
         --m_objcount;
     }
 
@@ -82,8 +82,11 @@ public:
 
 private:
 
-    const wxClassInfo    *m_before; // sm_first before loading this lib
-    const wxClassInfo    *m_after;  // ..and after.
+    // These pointers may be NULL but if they are not, then m_ourLast follows
+    // m_ourFirst in the linked list, i.e. can be found by calling GetNext() a
+    // sufficient number of times.
+    const wxClassInfo    *m_ourFirst; // first class info in this plugin
+    const wxClassInfo    *m_ourLast;  // ..and the last one
 
     size_t          m_linkcount;    // Ref count of library link calls
     size_t          m_objcount;     // ..and (pluggable) object instantiations.
@@ -94,7 +97,7 @@ private:
     void    RegisterModules();      // Init any wxModules in the lib.
     void    UnregisterModules();    // Cleanup any wxModules we installed.
 
-    DECLARE_NO_COPY_CLASS(wxPluginLibrary)
+    wxDECLARE_NO_COPY_CLASS(wxPluginLibrary);
 };
 
 
@@ -144,7 +147,7 @@ private:
 
     // We could allow this class to be copied if we really
     // wanted to, but not without modification.
-    DECLARE_NO_COPY_CLASS(wxPluginManager)
+    wxDECLARE_NO_COPY_CLASS(wxPluginManager);
 };