Skip to content

Commit fa8a341

Browse files
author
MarcoFalke
committed
wallet: Replace CDataStream& with CDataStream&& where appropriate
The keys and values are only to be used once because their memory is set to zero. Make that explicit by moving the bytes into the lower level methods.
1 parent fa021e9 commit fa8a341

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

src/wallet/bdb.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -804,7 +804,7 @@ std::string BerkeleyDatabaseVersion()
804804
return DbEnv::version(nullptr, nullptr, nullptr);
805805
}
806806

807-
bool BerkeleyBatch::ReadKey(CDataStream& key, CDataStream& value)
807+
bool BerkeleyBatch::ReadKey(CDataStream&& key, CDataStream& value)
808808
{
809809
if (!pdb)
810810
return false;
@@ -820,7 +820,7 @@ bool BerkeleyBatch::ReadKey(CDataStream& key, CDataStream& value)
820820
return false;
821821
}
822822

823-
bool BerkeleyBatch::WriteKey(CDataStream& key, CDataStream& value, bool overwrite)
823+
bool BerkeleyBatch::WriteKey(CDataStream&& key, CDataStream&& value, bool overwrite)
824824
{
825825
if (!pdb)
826826
return true;
@@ -835,7 +835,7 @@ bool BerkeleyBatch::WriteKey(CDataStream& key, CDataStream& value, bool overwrit
835835
return (ret == 0);
836836
}
837837

838-
bool BerkeleyBatch::EraseKey(CDataStream& key)
838+
bool BerkeleyBatch::EraseKey(CDataStream&& key)
839839
{
840840
if (!pdb)
841841
return false;
@@ -848,7 +848,7 @@ bool BerkeleyBatch::EraseKey(CDataStream& key)
848848
return (ret == 0 || ret == DB_NOTFOUND);
849849
}
850850

851-
bool BerkeleyBatch::HasKey(CDataStream& key)
851+
bool BerkeleyBatch::HasKey(CDataStream&& key)
852852
{
853853
if (!pdb)
854854
return false;

src/wallet/bdb.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -189,10 +189,10 @@ class BerkeleyBatch
189189
};
190190

191191
private:
192-
bool ReadKey(CDataStream& key, CDataStream& value);
193-
bool WriteKey(CDataStream& key, CDataStream& value, bool overwrite=true);
194-
bool EraseKey(CDataStream& key);
195-
bool HasKey(CDataStream& key);
192+
bool ReadKey(CDataStream&& key, CDataStream& value);
193+
bool WriteKey(CDataStream&& key, CDataStream&& value, bool overwrite = true);
194+
bool EraseKey(CDataStream&& key);
195+
bool HasKey(CDataStream&& key);
196196

197197
protected:
198198
Db* pdb;
@@ -228,7 +228,7 @@ class BerkeleyBatch
228228
ssKey << key;
229229

230230
CDataStream ssValue(SER_DISK, CLIENT_VERSION);
231-
if (!ReadKey(ssKey, ssValue)) return false;
231+
if (!ReadKey(std::move(ssKey), ssValue)) return false;
232232
try {
233233
ssValue >> value;
234234
return true;
@@ -248,7 +248,7 @@ class BerkeleyBatch
248248
ssValue.reserve(10000);
249249
ssValue << value;
250250

251-
return WriteKey(ssKey, ssValue, fOverwrite);
251+
return WriteKey(std::move(ssKey), std::move(ssValue), fOverwrite);
252252
}
253253

254254
template <typename K>
@@ -258,7 +258,7 @@ class BerkeleyBatch
258258
ssKey.reserve(1000);
259259
ssKey << key;
260260

261-
return EraseKey(ssKey);
261+
return EraseKey(std::move(ssKey));
262262
}
263263

264264
template <typename K>
@@ -268,7 +268,7 @@ class BerkeleyBatch
268268
ssKey.reserve(1000);
269269
ssKey << key;
270270

271-
return HasKey(ssKey);
271+
return HasKey(std::move(ssKey));
272272
}
273273

274274
Dbc* GetCursor();

0 commit comments

Comments
 (0)