Skip to content

Commit 35b7a8e

Browse files
committed
Merge #18087: Get rid of VARINT default argument
0e0fa27 Get rid of VARINT default argument (Pieter Wuille) Pull request description: This removes the need for the non-strandard use of variadic macros. ACKs for top commit: ryanofsky: Code review ACK 0e0fa27. Only change since last review reverting outdated documentation change from earlier version of pr jonatack: ACK 0e0fa27 code review, built/ran tests/bitcoind practicalswift: ACK 0e0fa27 -- diff looks correct MarcoFalke: ACK 0e0fa27 📯 Tree-SHA512: 6e335e4b586d62112b7260a12481cd949d1b3bbdb83edf8db690348f0a01852e68504336ff3e072e5131a7c8cb404ef11a2f786f842b8d08bbf6ea0e688777b1
2 parents 646f0ad + 0e0fa27 commit 35b7a8e

File tree

6 files changed

+22
-21
lines changed

6 files changed

+22
-21
lines changed

src/chain.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -333,12 +333,12 @@ class CDiskBlockIndex : public CBlockIndex
333333
SERIALIZE_METHODS(CDiskBlockIndex, obj)
334334
{
335335
int _nVersion = s.GetVersion();
336-
if (!(s.GetType() & SER_GETHASH)) READWRITE(VARINT(_nVersion, VarIntMode::NONNEGATIVE_SIGNED));
336+
if (!(s.GetType() & SER_GETHASH)) READWRITE(VARINT_MODE(_nVersion, VarIntMode::NONNEGATIVE_SIGNED));
337337

338-
READWRITE(VARINT(obj.nHeight, VarIntMode::NONNEGATIVE_SIGNED));
338+
READWRITE(VARINT_MODE(obj.nHeight, VarIntMode::NONNEGATIVE_SIGNED));
339339
READWRITE(VARINT(obj.nStatus));
340340
READWRITE(VARINT(obj.nTx));
341-
if (obj.nStatus & (BLOCK_HAVE_DATA | BLOCK_HAVE_UNDO)) READWRITE(VARINT(obj.nFile, VarIntMode::NONNEGATIVE_SIGNED));
341+
if (obj.nStatus & (BLOCK_HAVE_DATA | BLOCK_HAVE_UNDO)) READWRITE(VARINT_MODE(obj.nFile, VarIntMode::NONNEGATIVE_SIGNED));
342342
if (obj.nStatus & BLOCK_HAVE_DATA) READWRITE(VARINT(obj.nDataPos));
343343
if (obj.nStatus & BLOCK_HAVE_UNDO) READWRITE(VARINT(obj.nUndoPos));
344344

src/flatfile.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ struct FlatFilePos
2020

2121
template <typename Stream, typename Operation>
2222
inline void SerializationOp(Stream& s, Operation ser_action) {
23-
READWRITE(VARINT(nFile, VarIntMode::NONNEGATIVE_SIGNED));
23+
READWRITE(VARINT_MODE(nFile, VarIntMode::NONNEGATIVE_SIGNED));
2424
READWRITE(VARINT(nPos));
2525
}
2626

src/node/coinstats.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ static void ApplyStats(CCoinsStats &stats, CHashWriter& ss, const uint256& hash,
2323
for (const auto& output : outputs) {
2424
ss << VARINT(output.first + 1);
2525
ss << output.second.out.scriptPubKey;
26-
ss << VARINT(output.second.out.nValue, VarIntMode::NONNEGATIVE_SIGNED);
26+
ss << VARINT_MODE(output.second.out.nValue, VarIntMode::NONNEGATIVE_SIGNED);
2727
stats.nTransactionOutputs++;
2828
stats.nTotalAmount += output.second.out.nValue;
2929
stats.nBogoSize += 32 /* txid */ + 4 /* vout index */ + 4 /* height + coinbase */ + 8 /* amount */ +

src/serialize.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -493,12 +493,13 @@ class Wrapper
493493
template<typename Formatter, typename T>
494494
static inline Wrapper<Formatter, T&> Using(T&& t) { return Wrapper<Formatter, T&>(t); }
495495

496-
#define VARINT(obj, ...) Using<VarIntFormatter<__VA_ARGS__>>(obj)
496+
#define VARINT_MODE(obj, mode) Using<VarIntFormatter<mode>>(obj)
497+
#define VARINT(obj) Using<VarIntFormatter<VarIntMode::DEFAULT>>(obj)
497498
#define COMPACTSIZE(obj) CCompactSize(REF(obj))
498499
#define LIMITED_STRING(obj,n) LimitedString< n >(REF(obj))
499500

500501
/** Serialization wrapper class for integers in VarInt format. */
501-
template<VarIntMode Mode=VarIntMode::DEFAULT>
502+
template<VarIntMode Mode>
502503
struct VarIntFormatter
503504
{
504505
template<typename Stream, typename I> void Ser(Stream &s, I v)

src/test/serialize_tests.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,8 @@ BOOST_AUTO_TEST_CASE(varints)
182182
CDataStream ss(SER_DISK, 0);
183183
CDataStream::size_type size = 0;
184184
for (int i = 0; i < 100000; i++) {
185-
ss << VARINT(i, VarIntMode::NONNEGATIVE_SIGNED);
186-
size += ::GetSerializeSize(VARINT(i, VarIntMode::NONNEGATIVE_SIGNED), 0);
185+
ss << VARINT_MODE(i, VarIntMode::NONNEGATIVE_SIGNED);
186+
size += ::GetSerializeSize(VARINT_MODE(i, VarIntMode::NONNEGATIVE_SIGNED), 0);
187187
BOOST_CHECK(size == ss.size());
188188
}
189189

@@ -196,7 +196,7 @@ BOOST_AUTO_TEST_CASE(varints)
196196
// decode
197197
for (int i = 0; i < 100000; i++) {
198198
int j = -1;
199-
ss >> VARINT(j, VarIntMode::NONNEGATIVE_SIGNED);
199+
ss >> VARINT_MODE(j, VarIntMode::NONNEGATIVE_SIGNED);
200200
BOOST_CHECK_MESSAGE(i == j, "decoded:" << j << " expected:" << i);
201201
}
202202

@@ -210,21 +210,21 @@ BOOST_AUTO_TEST_CASE(varints)
210210
BOOST_AUTO_TEST_CASE(varints_bitpatterns)
211211
{
212212
CDataStream ss(SER_DISK, 0);
213-
ss << VARINT(0, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "00"); ss.clear();
214-
ss << VARINT(0x7f, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "7f"); ss.clear();
215-
ss << VARINT((int8_t)0x7f, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "7f"); ss.clear();
216-
ss << VARINT(0x80, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "8000"); ss.clear();
213+
ss << VARINT_MODE(0, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "00"); ss.clear();
214+
ss << VARINT_MODE(0x7f, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "7f"); ss.clear();
215+
ss << VARINT_MODE((int8_t)0x7f, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "7f"); ss.clear();
216+
ss << VARINT_MODE(0x80, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "8000"); ss.clear();
217217
ss << VARINT((uint8_t)0x80); BOOST_CHECK_EQUAL(HexStr(ss), "8000"); ss.clear();
218-
ss << VARINT(0x1234, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "a334"); ss.clear();
219-
ss << VARINT((int16_t)0x1234, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "a334"); ss.clear();
220-
ss << VARINT(0xffff, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "82fe7f"); ss.clear();
218+
ss << VARINT_MODE(0x1234, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "a334"); ss.clear();
219+
ss << VARINT_MODE((int16_t)0x1234, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "a334"); ss.clear();
220+
ss << VARINT_MODE(0xffff, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "82fe7f"); ss.clear();
221221
ss << VARINT((uint16_t)0xffff); BOOST_CHECK_EQUAL(HexStr(ss), "82fe7f"); ss.clear();
222-
ss << VARINT(0x123456, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "c7e756"); ss.clear();
223-
ss << VARINT((int32_t)0x123456, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "c7e756"); ss.clear();
222+
ss << VARINT_MODE(0x123456, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "c7e756"); ss.clear();
223+
ss << VARINT_MODE((int32_t)0x123456, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "c7e756"); ss.clear();
224224
ss << VARINT(0x80123456U); BOOST_CHECK_EQUAL(HexStr(ss), "86ffc7e756"); ss.clear();
225225
ss << VARINT((uint32_t)0x80123456U); BOOST_CHECK_EQUAL(HexStr(ss), "86ffc7e756"); ss.clear();
226226
ss << VARINT(0xffffffff); BOOST_CHECK_EQUAL(HexStr(ss), "8efefefe7f"); ss.clear();
227-
ss << VARINT(0x7fffffffffffffffLL, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "fefefefefefefefe7f"); ss.clear();
227+
ss << VARINT_MODE(0x7fffffffffffffffLL, VarIntMode::NONNEGATIVE_SIGNED); BOOST_CHECK_EQUAL(HexStr(ss), "fefefefefefefefe7f"); ss.clear();
228228
ss << VARINT(0xffffffffffffffffULL); BOOST_CHECK_EQUAL(HexStr(ss), "80fefefefefefefefe7f"); ss.clear();
229229
}
230230

src/txdb.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ class CCoins
339339
::Unserialize(s, Using<TxOutCompression>(vout[i]));
340340
}
341341
// coinbase height
342-
::Unserialize(s, VARINT(nHeight, VarIntMode::NONNEGATIVE_SIGNED));
342+
::Unserialize(s, VARINT_MODE(nHeight, VarIntMode::NONNEGATIVE_SIGNED));
343343
}
344344
};
345345

0 commit comments

Comments
 (0)