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

List:       kde-bugs-dist
Subject:    [Bug 69906] crash when opening existing project
From:       Matt Rogers <mattr () kde ! org>
Date:       2006-11-04 15:04:44
Message-ID: 20061104150444.26995.qmail () ktown ! kde ! org
[Download RAW message or body]

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=69906         




------- Additional Comments From mattr kde org  2006-11-04 16:04 -------
SVN commit 601896 by mattr:

Apply patch from Carsten Pfeiffer to fix crashes on KDevelop shutdown.
This patch fixes crashes in the following two situations:

- Quit via the command 'dcop kdevelop-1234 MainApplication-Interface
  quit'
- Quit when closing as part of KDE logout

Thanks for the patch!

CCBUG: 69906


 M  +3 -0      lib/interfaces/kdevmainwindow.h  
 M  +10 -1     src/main.cpp  
 M  +1 -0      src/plugincontroller.cpp  


--- branches/kdevelop/3.4/lib/interfaces/kdevmainwindow.h #601895:601896
 @ -40,6 +40,9  @
 class KDevMainWindow
 {
 public:
+    /**Destroys the main window*/
+    virtual ~KDevMainWindow() {} // must be virtual!
+
     /**Embeds a view of a part into the main window.
      param view The view to embed. Must be a KPart.
      param title The title of a view.
--- branches/kdevelop/3.4/src/main.cpp #601895:601896
 @ -142,5 +142,14  @
 
   kapp->dcopClient()->registerAs("kdevelop");
 
-  return app.exec();
+  int ret = app.exec();
+
+  ProjectManager::getInstance()->closeProject( true ); // exiting
+  delete ProjectManager::getInstance();
+
+  delete PluginController::getInstance();
+  if (TopLevel::mainWindowValid())
+      delete TopLevel::getInstance();
+
+  return ret;
 }
--- branches/kdevelop/3.4/src/plugincontroller.cpp #601895:601896
 @ -248,6 +248,7  @
 
 void PluginController::removePart(KXMLGUIClient *part)
 {
+  if (TopLevel::mainWindowValid()) // is 0 when window was already closed
   TopLevel::getInstance()->main()->guiFactory()->removeClient(part);
 }
[prev in list] [next in list] [prev in thread] [next in thread] 

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