Skip to content

Commit cde2bec

Browse files
MarcoFalkestackman27
authored andcommitted
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 ce4a982 commit cde2bec

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
@@ -796,7 +796,7 @@ std::string BerkeleyDatabaseVersion()
796796
return DbEnv::version(nullptr, nullptr, nullptr);
797797
}
798798

799-
bool BerkeleyBatch::ReadKey(CDataStream& key, CDataStream& value)
799+
bool BerkeleyBatch::ReadKey(CDataStream&& key, CDataStream& value)
800800
{
801801
if (!pdb)
802802
return false;
@@ -812,7 +812,7 @@ bool BerkeleyBatch::ReadKey(CDataStream& key, CDataStream& value)
812812
return false;
813813
}
814814

815-
bool BerkeleyBatch::WriteKey(CDataStream& key, CDataStream& value, bool overwrite)
815+
bool BerkeleyBatch::WriteKey(CDataStream&& key, CDataStream&& value, bool overwrite)
816816
{
817817
if (!pdb)
818818
return true;
@@ -827,7 +827,7 @@ bool BerkeleyBatch::WriteKey(CDataStream& key, CDataStream& value, bool overwrit
827827
return (ret == 0);
828828
}
829829

830-
bool BerkeleyBatch::EraseKey(CDataStream& key)
830+
bool BerkeleyBatch::EraseKey(CDataStream&& key)
831831
{
832832
if (!pdb)
833833
return false;
@@ -840,7 +840,7 @@ bool BerkeleyBatch::EraseKey(CDataStream& key)
840840
return (ret == 0 || ret == DB_NOTFOUND);
841841
}
842842

843-
bool BerkeleyBatch::HasKey(CDataStream& key)
843+
bool BerkeleyBatch::HasKey(CDataStream&& key)
844844
{
845845
if (!pdb)
846846
return false;

src/wallet/bdb.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -195,10 +195,10 @@ class BerkeleyBatch
195195
};
196196

197197
private:
198-
bool ReadKey(CDataStream& key, CDataStream& value);
199-
bool WriteKey(CDataStream& key, CDataStream& value, bool overwrite=true);
200-
bool EraseKey(CDataStream& key);
201-
bool HasKey(CDataStream& key);
198+
bool ReadKey(CDataStream&& key, CDataStream& value);
199+
bool WriteKey(CDataStream&& key, CDataStream&& value, bool overwrite = true);
200+
bool EraseKey(CDataStream&& key);
201+
bool HasKey(CDataStream&& key);
202202

203203
protected:
204204
Db* pdb;
@@ -227,7 +227,7 @@ class BerkeleyBatch
227227
ssKey << key;
228228

229229
CDataStream ssValue(SER_DISK, CLIENT_VERSION);
230-
if (!ReadKey(ssKey, ssValue)) return false;
230+
if (!ReadKey(std::move(ssKey), ssValue)) return false;
231231
try {
232232
ssValue >> value;
233233
return true;
@@ -247,7 +247,7 @@ class BerkeleyBatch
247247
ssValue.reserve(10000);
248248
ssValue << value;
249249

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

253253
template <typename K>
@@ -257,7 +257,7 @@ class BerkeleyBatch
257257
ssKey.reserve(1000);
258258
ssKey << key;
259259

260-
return EraseKey(ssKey);
260+
return EraseKey(std::move(ssKey));
261261
}
262262

263263
template <typename K>
@@ -267,7 +267,7 @@ class BerkeleyBatch
267267
ssKey.reserve(1000);
268268
ssKey << key;
269269

270-
return HasKey(ssKey);
270+
return HasKey(std::move(ssKey));
271271
}
272272

273273
bool StartCursor();

0 commit comments

Comments
 (0)