Fix bug with unloading wxPluginLibrary objects in "wrong" order.
wxPluginLibrary objects had to be unloaded in exactly the reverse order to which they were loaded in. This was not documented and was a serious limitation for any realistic use of plugins anyhow, so fix it and allow unloading them in any order now. Instead of keeping a pointer to the last wxClassInfo not created by this plugin, now keep a pointer to the first wxClassInfo that was created by it. This makes the code slightly more complex but this pointer, unlike the old one, remains valid even if another plugin was unloaded. Closes #14261. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71571 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -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.
|
||||
|
Reference in New Issue
Block a user