[Digikam-devel] [Bug 131972] Crash when closing Digikam [backtrace]

Marcel Wiesweg marcel.wiesweg at gmx.de
Sun Aug 13 14:00:41 BST 2006


------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
         
http://bugs.kde.org/show_bug.cgi?id=131972         




------- Additional Comments From marcel.wiesweg gmx de  2006-08-13 14:59 -------
SVN commit 572641 by mwiesweg:

- Shut down ImageAttributesWatch connections when closing,
  widgets may have been deleted at that time, which will cause a crash.
- properly shut down albumthumbnailloader when closing to free Shared Memory

CCBUG: 131972



 M  +4 -0      digikamapp.cpp  
 M  +7 -0      imageattributeswatch.cpp  
 M  +1 -0      imageattributeswatch.h  


--- trunk/extragear/graphics/digikam/digikam/digikamapp.cpp #572640:572641
 @ -85,6 +85,7  @
 #include "imageattributeswatch.h"
 #include "dcrawbinary.h"
 #include "digikamapp.h"
+#include "albumthumbnailloader.h"
 
 using KIO::Job;
 using KIO::UDSEntryList;
 @ -171,6 +172,8  @
 
 DigikamApp::~DigikamApp()
 {
+    ImageAttributesWatch::shutDown();
+
     if (ImageWindow::imagewindowCreated())
         delete ImageWindow::imagewindow();
 
 @ -186,6 +189,7  @
     ImageAttributesWatch::cleanUp();
     LoadingCacheInterface::cleanUp();
     DcrawBinary::cleanUp();
+    AlbumThumbnailLoader::cleanUp();
 
     m_instance = 0;
 }
--- trunk/extragear/graphics/digikam/digikam/imageattributeswatch.cpp #572640:572641
 @ -36,8 +36,15  @
 void ImageAttributesWatch::cleanUp()
 {
     delete m_instance;
+    m_instance = 0;
 }
 
+void ImageAttributesWatch::shutDown()
+{
+    if (m_instance)
+        m_instance->disconnect(0, 0, 0);
+}
+
 ImageAttributesWatch *ImageAttributesWatch::instance()
 {
     if (!m_instance)
--- trunk/extragear/graphics/digikam/digikam/imageattributeswatch.h #572640:572641
 @ -42,6 +42,7  @
 
     static ImageAttributesWatch *instance();
     static void cleanUp();
+    static void shutDown();
 
     void imageTagsChanged(Q_LLONG imageId);
     void imagesChanged(int albumId);



More information about the Digikam-devel mailing list