diff --git a/configfileparser.cpp b/configfileparser.cpp index 168f332..a4040c1 100644 --- a/configfileparser.cpp +++ b/configfileparser.cpp @@ -445,5 +445,12 @@ void ConfigFileParser::loadFile(bool test) } } +std::unique_ptr ConfigFileParser::moveSettings() +{ + std::unique_ptr tmp = std::move(settings); + settings.reset(new Settings); + return tmp; +} + diff --git a/configfileparser.h b/configfileparser.h index 325ffda..0cc9ac3 100644 --- a/configfileparser.h +++ b/configfileparser.h @@ -44,6 +44,8 @@ class ConfigFileParser std::set validKeys; std::set validListenKeys; + std::unique_ptr settings; + void testKeyValidity(const std::string &key, const std::set &validKeys) const; void checkFileExistsAndReadable(const std::string &key, const std::string &pathToCheck, ssize_t max_size = std::numeric_limits::max()) const; void checkFileOrItsDirWritable(const std::string &filepath) const; @@ -51,7 +53,7 @@ public: ConfigFileParser(const std::string &path); void loadFile(bool test); - std::unique_ptr settings; + std::unique_ptr moveSettings(); }; #endif // CONFIGFILEPARSER_H diff --git a/mainapp.cpp b/mainapp.cpp index 2b5d00b..42ba645 100644 --- a/mainapp.cpp +++ b/mainapp.cpp @@ -628,7 +628,7 @@ void MainApp::loadConfig() // Atomic loading, first test. confFileParser->loadFile(true); confFileParser->loadFile(false); - settings = std::move(confFileParser->settings); + settings = confFileParser->moveSettings(); if (settings->listeners.empty()) {