chain: move new settings safely in overwriteRwSetting

This commit is contained in:
ismaelsadeeq 2024-09-05 20:40:01 +01:00
parent 1c409004c8
commit 1e9e735670
No known key found for this signature in database
GPG key ID: 0E3908F364989888
3 changed files with 3 additions and 3 deletions

View file

@ -361,7 +361,7 @@ public:
virtual bool updateRwSetting(const std::string& name, const SettingsUpdate& update_function) = 0;
//! Replace a setting in <datadir>/settings.json with a new value.
virtual bool overwriteRwSetting(const std::string& name, common::SettingsValue& value, bool write = true) = 0;
virtual bool overwriteRwSetting(const std::string& name, common::SettingsValue value, bool write = true) = 0;
//! Delete a given setting in <datadir>/settings.json.
virtual bool deleteRwSettings(const std::string& name, bool write = true) = 0;

View file

@ -828,7 +828,7 @@ public:
// Now dump value to disk if requested
return *action == interfaces::SettingsAction::SKIP_WRITE || args().WriteSettingsFile();
}
bool overwriteRwSetting(const std::string& name, common::SettingsValue& value, bool write) override
bool overwriteRwSetting(const std::string& name, common::SettingsValue value, bool write) override
{
if (value.isNull()) return deleteRwSettings(name, write);
return updateRwSetting(name, [&](common::SettingsValue& settings) {

View file

@ -69,7 +69,7 @@ bool VerifyWallets(WalletContext& context)
// Pass write=false because no need to write file and probably
// better not to. If unnamed wallet needs to be added next startup
// and the setting is empty, this code will just run again.
chain.overwriteRwSetting("wallet", wallets, /*write=*/false);
chain.overwriteRwSetting("wallet", std::move(wallets), /*write=*/false);
}
}