diff options
author | Amiti Uttarwar <amiti@uttarwar.org> | 2023-04-25 17:04:11 +0100 |
---|---|---|
committer | Amiti Uttarwar <amiti@uttarwar.org> | 2023-05-26 15:47:55 -0700 |
commit | b9f1e86f129e46bb5770fb421d0ba164b5c7aaf8 (patch) | |
tree | 53f0859cf45f9242312e85491b4bcf1fd7dbee3c /src/addrman.cpp | |
parent | 768770771f7db60147943152b34a8dd485cdcc76 (diff) |
addrman: change asserts to Assumes
`Assume` is safer since the checks are non-fatal- errors in these functions
should provide feedback in debug builds, but do not need to deter further node
operations in production.
Diffstat (limited to 'src/addrman.cpp')
-rw-r--r-- | src/addrman.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/addrman.cpp b/src/addrman.cpp index 30ce2cadc8..19a4f4fa63 100644 --- a/src/addrman.cpp +++ b/src/addrman.cpp @@ -764,9 +764,7 @@ std::pair<CAddress, NodeSeconds> AddrManImpl::Select_(bool new_only, std::option if (node_id != -1) { if (network.has_value()) { const auto it{mapInfo.find(node_id)}; - assert(it != mapInfo.end()); - const auto info{it->second}; - if (info.GetNetwork() == *network) break; + if (Assume(it != mapInfo.end()) && it->second.GetNetwork() == *network) break; } else { break; } @@ -796,15 +794,17 @@ int AddrManImpl::GetEntry(bool use_tried, size_t bucket, size_t position) const { AssertLockHeld(cs); - assert(position < ADDRMAN_BUCKET_SIZE); - if (use_tried) { - assert(bucket < ADDRMAN_TRIED_BUCKET_COUNT); - return vvTried[bucket][position]; + if (Assume(position < ADDRMAN_BUCKET_SIZE) && Assume(bucket < ADDRMAN_TRIED_BUCKET_COUNT)) { + return vvTried[bucket][position]; + } } else { - assert(bucket < ADDRMAN_NEW_BUCKET_COUNT); - return vvNew[bucket][position]; + if (Assume(position < ADDRMAN_BUCKET_SIZE) && Assume(bucket < ADDRMAN_NEW_BUCKET_COUNT)) { + return vvNew[bucket][position]; + } } + + return -1; } std::vector<CAddress> AddrManImpl::GetAddr_(size_t max_addresses, size_t max_pct, std::optional<Network> network) const |