7f25b354a7
LogDir is not copyable when it contains an m_info pointer. std::sort() inside LogDir::getLogDirs() for a context is called with LogDir as binary predicate, which causes a crash because sort() copies the predicate. This was found when calling getLogDirs() in a LogDir used for local sync, without a peer. It did not happen before because then the LogDir instance did not contain an m_info pointer. It was merely inefficient. This patch moves the static log dir name methods into a new LogDirNames class and uses that as binary predicate. LogDir itself inherits these methods via a private base class, which is similar to the previous private static methods (avoids touching all of the calls) and also inherits from boost::copyable to catch future errors related to copying LogDir. |
||
---|---|---|
.. | ||
backends | ||
dbus | ||
gdbus | ||
gnome-bluetooth | ||
gtk-ui | ||
syncevo | ||
synthesis-includes | ||
templates | ||
.cvsignore | ||
async.patch | ||
client-test-app.cpp | ||
CmdlineSyncClient.cpp | ||
CmdlineSyncClient.h | ||
Makefile-gen.am | ||
org.syncevolution.service.in | ||
README.h | ||
README.templates | ||
shlibs.local | ||
syncevo-dbus-server-startup.sh.in | ||
syncevo-dbus-server.cpp | ||
syncevo-dbus-server.desktop.in | ||
syncevolution.cpp | ||
valgrind.supp |
The configuration templates in "templates" get installed into $(datadir)/syncevolution/templates. When adding/changing a new server, then only enter the properties which need to be changed here so that the default values can be used for the remaining properties. An icon can be added here for servers. The file name must start with "icon". Server configurations must be kept in sync in three different places: - here (if a server is installed as files) - in SyncEvolutionConfig.cpp's EvolutionSyncConfig::createServerTemplate() - in SyncEvolutionCmdline.cpp's test server configs - in test/test-dbus.py testGetConfigsTemplates() Note that server icons must come with a suitable license that allows redistribution.