[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdepim/akregator/src
From:       Frank Osterfeld <frank.osterfeld () kdemail ! net>
Date:       2009-12-05 20:03:28
Message-ID: 1260043408.352422.9925.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1059093 by osterfeld:

merge from 4.3 branch
------------------------------------------------------------------------
r997104 | osterfeld | 2009-07-15 13:12:21 +0200 (Wed, 15 Jul 2009) | 3 lines

Don't crash when an embedded KPart triggers its own deletion
BUG: 193146

------------------------------------------------------------------------


 M  +6 -1      browserframe_p.cpp  


--- trunk/KDE/kdepim/akregator/src/browserframe_p.cpp #1059092:1059093
@@ -91,8 +91,13 @@
     part = factory->create<KParts::ReadOnlyPart>(q);
     if (!part)
         return false;
-    connect(part, SIGNAL(destroyed(QObject*)), this, SLOT(partDestroyed(QObject*)) \
);  
+    // Parts can be destroyed from within the part itself, thus we must listen to \
destroyed() +    // partDestroyed() requests deletion of this BrowserFrame, which \
deletes the part, which crashes as +    // the part is already half-destructed \
(destroyed() is emitted from the dtor) but the QPointer is not yet reset to 0. +    \
// Thus queue the signal to avoid he double deletion. +    connect(part, \
SIGNAL(destroyed(QObject*)), this, SLOT(partDestroyed(QObject*)), \
Qt::QueuedConnection); +
     part->setObjectName(ptr->name());
     extension = KParts::BrowserExtension::childObject(part);
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic