diff --git a/src/wallet/bdb.h b/src/wallet/bdb.h --- a/src/wallet/bdb.h +++ b/src/wallet/bdb.h @@ -205,10 +205,11 @@ }; private: - bool ReadKey(CDataStream &key, CDataStream &value); - bool WriteKey(CDataStream &key, CDataStream &value, bool overwrite = true); - bool EraseKey(CDataStream &key); - bool HasKey(CDataStream &key); + bool ReadKey(CDataStream &&key, CDataStream &value); + bool WriteKey(CDataStream &&key, CDataStream &&value, + bool overwrite = true); + bool EraseKey(CDataStream &&key); + bool HasKey(CDataStream &&key); protected: Db *pdb; @@ -237,7 +238,7 @@ ssKey << key; CDataStream ssValue(SER_DISK, CLIENT_VERSION); - if (!ReadKey(ssKey, ssValue)) { + if (!ReadKey(std::move(ssKey), ssValue)) { return false; } try { @@ -258,7 +259,7 @@ ssValue.reserve(10000); ssValue << value; - return WriteKey(ssKey, ssValue, fOverwrite); + return WriteKey(std::move(ssKey), std::move(ssValue), fOverwrite); } template bool Erase(const K &key) { @@ -266,7 +267,7 @@ ssKey.reserve(1000); ssKey << key; - return EraseKey(ssKey); + return EraseKey(std::move(ssKey)); } template bool Exists(const K &key) { @@ -274,7 +275,7 @@ ssKey.reserve(1000); ssKey << key; - return HasKey(ssKey); + return HasKey(std::move(ssKey)); } bool StartCursor(); diff --git a/src/wallet/bdb.cpp b/src/wallet/bdb.cpp --- a/src/wallet/bdb.cpp +++ b/src/wallet/bdb.cpp @@ -858,7 +858,7 @@ return (ret == 0); } -bool BerkeleyBatch::ReadKey(CDataStream &key, CDataStream &value) { +bool BerkeleyBatch::ReadKey(CDataStream &&key, CDataStream &value) { if (!pdb) { return false; } @@ -874,7 +874,7 @@ return false; } -bool BerkeleyBatch::WriteKey(CDataStream &key, CDataStream &value, +bool BerkeleyBatch::WriteKey(CDataStream &&key, CDataStream &&value, bool overwrite) { if (!pdb) { return true; @@ -893,7 +893,7 @@ return (ret == 0); } -bool BerkeleyBatch::EraseKey(CDataStream &key) { +bool BerkeleyBatch::EraseKey(CDataStream &&key) { if (!pdb) { return false; } @@ -907,7 +907,7 @@ return (ret == 0 || ret == DB_NOTFOUND); } -bool BerkeleyBatch::HasKey(CDataStream &key) { +bool BerkeleyBatch::HasKey(CDataStream &&key) { if (!pdb) { return false; }