]> git.saurik.com Git - wxWidgets.git/commitdiff
remove the object from wxPendingDelete list before deleting it to avoid infinite...
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 25 Aug 2006 15:49:11 +0000 (15:49 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 25 Aug 2006 15:49:11 +0000 (15:49 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40821 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/appcmn.cpp

index 516a0acf1029ef1ee4484e10168ec4633bd06223..4cc829b6738306055afdb0dd78cc9ce4e6760667 100644 (file)
@@ -366,11 +366,14 @@ void wxAppBase::DeletePendingObjects()
     {
         wxObject *obj = node->GetData();
 
-        delete obj;
-
-        if (wxPendingDelete.Member(obj))
+        // remove it from the list first so that if we get back here somehow
+        // during the object deletion (e.g. wxYield called from its dtor) we
+        // wouldn't try to delete it the second time
+        if ( wxPendingDelete.Member(obj) )
             wxPendingDelete.Erase(node);
 
+        delete obj;
+
         // Deleting one object may have deleted other pending
         // objects, so start from beginning of list again.
         node = wxPendingDelete.GetFirst();