Version: 0.10.0-beta2 (rev.: 831837M) (using 4.00.98 (KDE 4.0.98 (4.1 RC1)), compiled sources) Compiler: gcc OS: Linux (i686) release 2.6.25-ARCH Hi, I discovered a strange crash. First I thought it was a broken digikam4.db, because I use this since 2 months and maybe it was converted wrong in the past. I had issues with find duplicates before and so I created a new database right now. Well the problem is still present. Here are the steps to reproduce the crash: 1. Create / Update your fingerprint database if not yet done 2. Select an image in album view, go to Image->Find Similar. Now you are in the "fuzzy searches - Image" tab. 3. Go to Settings->Album View. Now toggle 'show file name'. 4. Save your new settings 5. Back in "fuzzy searches - Image" tab, go to "Sketch". 6. If not crashed yet, go back to "Image" tab. 7. It should crash now. This only happens when changing the settings as described above, at least for me. It seems to be important to change the settings while in "find similar" tab, otherwise I cannot reproduce this. I'll attach a backtrace to this bugreport. Andi
It seems to crash also when in normal album view tab, changing the settings and clicking on "fuzzy searches - Image".
Created attachment 26100 [details] backtrace
After setup a lot of reinitialization is triggered (as anything might have changed) and also Album objects (kept in AlbumManager) are recreated. I was not aware of this problem until recently. It occurs everywhere and Album* is stored (in this case, SAlbum*) and AlbumManager signals are not listened. I am thinking about either implementing to listen to the signals in affected class, or, as a more general solution, implement a safe Album pointer class that does the signal listening. Yes, the latter can be better.
Yes, this sounds plausible...
SVN commit 838092 by mwiesweg: The class AlbumPointer provides a guarded pointer to Album* or one of the subclasses. When the album is deleted, the pointer is set to 0. Implementation is inspired by QPointer<>. Accompanying changes: Make Album destructor protected. This should only be accessible from AlbumManager. Install a private shortcut to access AlbumManager instance from Album (for updating guarded pointers). K_GLOBAL_STATIC instance is not accessible from call stacks going out from the destructor. CCBUG: 166484 M +1 -0 album.cpp M +12 -12 album.h M +46 -1 albummanager.cpp M +53 -0 albummanager.h WebSVN link: http://websvn.kde.org/?view=rev&revision=838092
SVN commit 838093 by mwiesweg: Use AlbumPointer for storing SAlbums BUG: 166484 M +2 -2 fuzzysearchview.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=838093