From fa4f388fc99c9ec7c3cf2bac3863c7b3004bb2ae Mon Sep 17 00:00:00 2001 From: MarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz> Date: Tue, 28 Oct 2025 15:33:10 +0100 Subject: [PATCH] refactor: Use fixed size ints over (un)signed ints for serialized values Bitcoin Core already assumes that 'unsigned int' means uint32_t and 'signed int' means int32_t. See src/compat/assumptions.h. Also, any serialized integral value must be of a fixed size. So make the fixed size explicit in this documenting refactor, which does not change the behavior on any platform. --- src/flatfile.h | 10 +++++----- src/index/disktxpos.h | 4 ++-- src/node/blockstorage.h | 14 +++++++------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/flatfile.h b/src/flatfile.h index 3edb0b85da4..3ec4eaf346a 100644 --- a/src/flatfile.h +++ b/src/flatfile.h @@ -13,16 +13,16 @@ struct FlatFilePos { - int nFile{-1}; - unsigned int nPos{0}; + int32_t nFile{-1}; + uint32_t nPos{0}; SERIALIZE_METHODS(FlatFilePos, obj) { READWRITE(VARINT_MODE(obj.nFile, VarIntMode::NONNEGATIVE_SIGNED), VARINT(obj.nPos)); } FlatFilePos() = default; - FlatFilePos(int nFileIn, unsigned int nPosIn) : - nFile(nFileIn), - nPos(nPosIn) + FlatFilePos(int32_t nFileIn, uint32_t nPosIn) + : nFile{nFileIn}, + nPos{nPosIn} {} friend bool operator==(const FlatFilePos &a, const FlatFilePos &b) { diff --git a/src/index/disktxpos.h b/src/index/disktxpos.h index a03638469e8..5e4352db98d 100644 --- a/src/index/disktxpos.h +++ b/src/index/disktxpos.h @@ -10,14 +10,14 @@ struct CDiskTxPos : public FlatFilePos { - unsigned int nTxOffset{0}; // after header + uint32_t nTxOffset{0}; // after header SERIALIZE_METHODS(CDiskTxPos, obj) { READWRITE(AsBase(obj), VARINT(obj.nTxOffset)); } - CDiskTxPos(const FlatFilePos &blockIn, unsigned int nTxOffsetIn) : FlatFilePos(blockIn.nFile, blockIn.nPos), nTxOffset(nTxOffsetIn) { + CDiskTxPos(const FlatFilePos& blockIn, uint32_t nTxOffsetIn) : FlatFilePos{blockIn.nFile, blockIn.nPos}, nTxOffset{nTxOffsetIn} { } CDiskTxPos() = default; diff --git a/src/node/blockstorage.h b/src/node/blockstorage.h index e4d208c1c13..b397fc268ef 100644 --- a/src/node/blockstorage.h +++ b/src/node/blockstorage.h @@ -50,13 +50,13 @@ namespace kernel { class CBlockFileInfo { public: - unsigned int nBlocks{}; //!< number of blocks stored in file - unsigned int nSize{}; //!< number of used bytes of block file - unsigned int nUndoSize{}; //!< number of used bytes in the undo file - unsigned int nHeightFirst{}; //!< lowest height of block in file - unsigned int nHeightLast{}; //!< highest height of block in file - uint64_t nTimeFirst{}; //!< earliest time of block in file - uint64_t nTimeLast{}; //!< latest time of block in file + uint32_t nBlocks{}; //!< number of blocks stored in file + uint32_t nSize{}; //!< number of used bytes of block file + uint32_t nUndoSize{}; //!< number of used bytes in the undo file + uint32_t nHeightFirst{}; //!< lowest height of block in file + uint32_t nHeightLast{}; //!< highest height of block in file + uint64_t nTimeFirst{}; //!< earliest time of block in file + uint64_t nTimeLast{}; //!< latest time of block in file SERIALIZE_METHODS(CBlockFileInfo, obj) {