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

List:       kde-commits
Subject:    KDE/kdepim/akonadi/tray
From:       Tom Albers <tomalbers () kde ! nl>
Date:       2008-04-09 17:47:48
Message-ID: 1207763268.159791.11773.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 795283 by toma:

Fix potential crash. When the parentWidget() is deleted, the Assistant is deleted and \
can be deleted again when the assistant returns, because it is on the stack. So make \
the Assistant on the heap again and use QPointer, so double deletion won't be a \
problem. Thanks for the help Frank!


 M  +6 -4      dock.cpp  


--- trunk/KDE/kdepim/akonadi/tray/dock.cpp #795282:795283
@@ -122,8 +122,9 @@
     bool registered = \
QDBusConnection::sessionBus().interface()->isServiceRegistered( \
"org.kde.Akonadi.Control" );  Q_ASSERT( registered );
 
-    BackupAssistant backup( parentWidget() );
-    backup.exec();
+    QPointer<BackupAssistant> backup = new BackupAssistant( parentWidget() );
+    backup->exec();
+    delete backup;
 }
 
 void Dock::slotStartRestore()
@@ -131,8 +132,9 @@
     bool registered = \
QDBusConnection::sessionBus().interface()->isServiceRegistered( \
"org.kde.Akonadi.Control" );  Q_ASSERT( registered );
 
-    RestoreAssistant restore( parentWidget() );
-    restore.exec();
+    QPointer<RestoreAssistant> restore = new RestoreAssistant( parentWidget() );
+    restore->exec();
+    delete restore;
 }
 
 void Dock::updateMenu( bool registered )


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

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