12334eb676
The special semantic of the former RegisterSyncSource::InactiveSource (invalid pointer of value 1) caused bugs, like using it in --print-databases (=> segfault) or not being able to store the result of a createSource() directly in a smart pointer (=> potential leak in SyncSource::createSource()). Obviously a bad idea to start with. Replaced with a RegisterSyncSource::InactiveSource() method which creates a real, inactive SyncSource instance which can and must be deleted by the caller. This is a SyncSource API change for backend developers. Instead of RegisterSyncSource::InactiveSource, return RegisterSyncSource::InactiveSource(). Comparisons against RegisterSyncSource::InactiveSource needs to be replaced with a call to the new SyncSource::isInactive(). User visible fixes: * --print-databases: no longer crashes when EDS or KDE backends are not usable. Instead it prints "not enabled during compilation or not usable in the current environment". * --print-databases: continues with other backends even if one backend throws an exception, as the KDE backend does when it cannot find Akonadi. Error messages are printed. |
||
---|---|---|
.. | ||
configure-sub.in | ||
file.am | ||
FileSyncSource.cpp | ||
FileSyncSource.h | ||
FileSyncSourceRegister.cpp |