diff options
author | John Newbery <john@johnnewbery.com> | 2021-08-05 14:14:21 +0100 |
---|---|---|
committer | John Newbery <john@johnnewbery.com> | 2021-08-19 11:29:54 +0100 |
commit | 4d2fa97031a6f31da984d4c2c105447ed692c6ed (patch) | |
tree | f4046506c89395ea7310f5910d0edd954b8ab9e9 | |
parent | 7e6e65918f75211b517fc887f5d90df8edd52ced (diff) | |
download | bitcoin-4d2fa97031a6f31da984d4c2c105447ed692c6ed.tar.xz |
[addrman] Clean up ctor
Use default initialization and initializer lists, and use range-based
for loops for resetting the buckets.
-rw-r--r-- | src/addrman.cpp | 23 | ||||
-rw-r--r-- | src/addrman.h | 10 |
2 files changed, 12 insertions, 21 deletions
diff --git a/src/addrman.cpp b/src/addrman.cpp index 690ea19c30..edcf97f846 100644 --- a/src/addrman.cpp +++ b/src/addrman.cpp @@ -79,28 +79,19 @@ double CAddrInfo::GetChance(int64_t nNow) const CAddrMan::CAddrMan(bool deterministic, int32_t consistency_check_ratio) : insecure_rand{deterministic} + , nKey{deterministic ? uint256{1} : insecure_rand.rand256()} , m_consistency_check_ratio{consistency_check_ratio} { - std::vector<int>().swap(vRandom); - nKey = insecure_rand.rand256(); - for (size_t bucket = 0; bucket < ADDRMAN_NEW_BUCKET_COUNT; bucket++) { - for (size_t entry = 0; entry < ADDRMAN_BUCKET_SIZE; entry++) { - vvNew[bucket][entry] = -1; + for (auto& bucket : vvNew) { + for (auto& entry : bucket) { + entry = -1; } } - for (size_t bucket = 0; bucket < ADDRMAN_TRIED_BUCKET_COUNT; bucket++) { - for (size_t entry = 0; entry < ADDRMAN_BUCKET_SIZE; entry++) { - vvTried[bucket][entry] = -1; + for (auto& bucket : vvTried) { + for (auto& entry : bucket) { + entry = -1; } } - - nIdCount = 0; - nTried = 0; - nNew = 0; - nLastGood = 1; //Initially at 1 so that "never" is strictly worse. - mapInfo.clear(); - mapAddr.clear(); - if (deterministic) nKey = uint256{1}; } CAddrInfo* CAddrMan::Find(const CNetAddr& addr, int* pnId) diff --git a/src/addrman.h b/src/addrman.h index 3d49c2583f..e2cb60b061 100644 --- a/src/addrman.h +++ b/src/addrman.h @@ -626,7 +626,7 @@ private: static constexpr uint8_t INCOMPATIBILITY_BASE = 32; //! last used nId - int nIdCount GUARDED_BY(cs); + int nIdCount GUARDED_BY(cs){0}; //! table with information about all nIds std::unordered_map<int, CAddrInfo> mapInfo GUARDED_BY(cs); @@ -640,19 +640,19 @@ private: mutable std::vector<int> vRandom GUARDED_BY(cs); // number of "tried" entries - int nTried GUARDED_BY(cs); + int nTried GUARDED_BY(cs){0}; //! list of "tried" buckets int vvTried[ADDRMAN_TRIED_BUCKET_COUNT][ADDRMAN_BUCKET_SIZE] GUARDED_BY(cs); //! number of (unique) "new" entries - int nNew GUARDED_BY(cs); + int nNew GUARDED_BY(cs){0}; //! list of "new" buckets int vvNew[ADDRMAN_NEW_BUCKET_COUNT][ADDRMAN_BUCKET_SIZE] GUARDED_BY(cs); - //! last time Good was called (memory only) - int64_t nLastGood GUARDED_BY(cs); + //! last time Good was called (memory only). Initially set to 1 so that "never" is strictly worse. + int64_t nLastGood GUARDED_BY(cs){1}; //! Holds addrs inserted into tried table that collide with existing entries. Test-before-evict discipline used to resolve these collisions. std::set<int> m_tried_collisions; |