]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/dynload.cpp
Avoid using buffer of already deallocated string in wxHTMLDataObject.
[wxWidgets.git] / src / common / dynload.cpp
index e9febf28cbca14e7a89032c3873a330088977f86..7d26dc392f8fe3e3d33d18869c59d97d9c22fe28 100644 (file)
@@ -79,20 +79,21 @@ wxPluginLibrary::wxPluginLibrary(const wxString &libname, int flags)
     const wxClassInfo* const oldFirst = wxClassInfo::GetFirst();
     Load( libname, flags );
 
     const wxClassInfo* const oldFirst = wxClassInfo::GetFirst();
     Load( libname, flags );
 
-    // It is simple to know what is the last object we registered, it's just
-    // the new head of the wxClassInfo list:
-    m_ourLast = wxClassInfo::GetFirst();
+    // It is simple to know what is the first object in the linked list of
+    // wxClassInfo that we registered (it's also the last one chronologically),
+    // 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
     // iterate until we get to the previous head as we don't have the links in
     // the backwards direction:
 
     // 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
     // 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;
             }
         }
@@ -205,7 +206,7 @@ void wxPluginLibrary::RegisterModules()
     {
         for ( const wxClassInfo *info = m_ourFirst; ; info = info->GetNext() )
         {
     {
         for ( const wxClassInfo *info = m_ourFirst; ; info = info->GetNext() )
         {
-            if( info->IsKindOf(CLASSINFO(wxModule)) )
+            if( info->IsKindOf(wxCLASSINFO(wxModule)) )
             {
                 wxModule *m = wxDynamicCast(info->CreateObject(), wxModule);
 
             {
                 wxModule *m = wxDynamicCast(info->CreateObject(), wxModule);
 
@@ -283,7 +284,7 @@ wxPluginManager::LoadLibrary(const wxString &libname, int flags)
     wxString realname(libname);
 
     if( !(flags & wxDL_VERBATIM) )
     wxString realname(libname);
 
     if( !(flags & wxDL_VERBATIM) )
-        realname += wxDynamicLibrary::GetDllExt();
+        realname += wxDynamicLibrary::GetDllExt(wxDL_MODULE);
 
     wxPluginLibrary *entry;
 
 
     wxPluginLibrary *entry;
 
@@ -342,7 +343,7 @@ bool wxPluginManager::UnloadLibrary(const wxString& libname)
 
     if ( !entry )
     {
 
     if ( !entry )
     {
-        realname += wxDynamicLibrary::GetDllExt();
+        realname += wxDynamicLibrary::GetDllExt(wxDL_MODULE);
 
         entry = FindByName(realname);
     }
 
         entry = FindByName(realname);
     }