Revision 1200847

Go back to digest for 28th November 2010

Bug Fixes in KDE Base

David Faure committed changes in /trunk/KDE/kdelibs/kded:

Fix two bugs that were compensating each other in the unittest here:
1) kbuildsycoca would not emit databaseChanged("...") for resources where desktop files had been deleted
2) a name clash ("screensaver.desktop" in both servicetypes and services) made kbuildsycoca4 always
emit databaseChanged("services")

And of course the unittest was for "deleting a desktop file in the services resource" so it was passing by pure chance (and not on Volker's machine which didn't have both desktop files).

Fixed 2) by using resource+path as the key in that dict rather than just path.
and fixed 1) by looking at g_ctimeDict at the end, to see which resources are still there
(which needed the fix for 2 in the first place)

The fix for 1) uncovers a new bug though: databaseChanged("apps") is always emitted, so we never go into the fast path of "no need to save to disk"; I'll look at this tomorrow.

File Changes

Modified 4 files
  • /trunk/KDE/kdelibs/kded
  •   /kbuildsycoca.cpp
  •   /kbuildsycoca.h
  •   /kctimefactory.cpp
  •   /kctimefactory.h
4 files changed in total