Merge bitcoin/bitcoin#27289: Refactor: Remove unused FlatFilePos::SetNull

fa67b8181c3ecf94395ecc50fd8acd436f1f8c3a Refactor: Remove unused FlatFilePos::SetNull (MarcoFalke)

Pull request description:

  This is unused outside of tests and the default constructor. With C++11, it can be replaced by C++11 member initializers in the default constructor.

  Beside removing unused code, this also makes it less fragile in light of uninitialized memory. (See also https://github.com/bitcoin/bitcoin/pull/26296#issuecomment-1477801767)

  If new code needs to set this to null, it can use `std::optional`, or in the worst case re-introduce this method.

ACKs for top commit:
  dergoegge:
    Code review ACK fa67b8181c3ecf94395ecc50fd8acd436f1f8c3a
  TheCharlatan:
    ACK fa67b8181c3ecf94395ecc50fd8acd436f1f8c3a
  john-moffett:
    ACK fa67b8181c3ecf94395ecc50fd8acd436f1f8c3a

Tree-SHA512: 465c5e3eb4625405c445695d33e09a1fc5185c7dd1e766ba06034fb093880bfc65441d5334f7d9b20e2e417c2075557d86059f59d9648ca0e62a54c699c029b9
This commit is contained in:
fanquake 2023-03-22 09:27:46 +00:00 committed by pasta
parent dbe2e04d62
commit 0dbafcee46
No known key found for this signature in database
GPG Key ID: E2F3D7916E722D38
4 changed files with 8 additions and 16 deletions

View File

@ -13,15 +13,15 @@
struct FlatFilePos
{
int nFile;
unsigned int nPos;
int nFile{-1};
unsigned int nPos{0};
SERIALIZE_METHODS(FlatFilePos, obj)
{
READWRITE(VARINT_MODE(obj.nFile, VarIntMode::NONNEGATIVE_SIGNED), VARINT(obj.nPos));
}
FlatFilePos() : nFile(-1), nPos(0) {}
FlatFilePos() {}
FlatFilePos(int nFileIn, unsigned int nPosIn) :
nFile(nFileIn),
@ -36,7 +36,6 @@ struct FlatFilePos
return !(a == b);
}
void SetNull() { nFile = -1; nPos = 0; }
bool IsNull() const { return (nFile == -1); }
std::string ToString() const;

View File

@ -10,7 +10,7 @@
struct CDiskTxPos : public FlatFilePos
{
unsigned int nTxOffset; // after header
unsigned int nTxOffset{0}; // after header
SERIALIZE_METHODS(CDiskTxPos, obj)
{
@ -21,15 +21,7 @@ struct CDiskTxPos : public FlatFilePos
CDiskTxPos(const FlatFilePos &blockIn, unsigned int nTxOffsetIn) : FlatFilePos(blockIn.nFile, blockIn.nPos), nTxOffset(nTxOffsetIn) {
}
CDiskTxPos() {
SetNull();
}
void SetNull() {
FlatFilePos::SetNull();
nTxOffset = 0;
}
CDiskTxPos() {}
};
#endif // BITCOIN_INDEX_DISKTXPOS_H

View File

@ -23,6 +23,9 @@ BOOST_AUTO_TEST_CASE(flatfile_filename)
FlatFileSeq seq2(data_dir / "a", "b", 16 * 1024);
BOOST_CHECK_EQUAL(seq2.FileName(pos), data_dir / "a" / "b00456.dat");
// Check default constructor IsNull
assert(FlatFilePos{}.IsNull());
}
BOOST_AUTO_TEST_CASE(flatfile_open)

View File

@ -25,6 +25,4 @@ FUZZ_TARGET(flatfile)
assert((*flat_file_pos == *another_flat_file_pos) != (*flat_file_pos != *another_flat_file_pos));
}
(void)flat_file_pos->ToString();
flat_file_pos->SetNull();
assert(flat_file_pos->IsNull());
}