@@ -431,9 +431,9 @@ CAddrInfo CAddrMan::Select_(bool newOnly) const
431
431
}
432
432
}
433
433
434
- #ifdef DEBUG_ADDRMAN
435
- int CAddrMan::Check_ ()
434
+ int CAddrMan::Check_ () const
436
435
{
436
+ #ifdef DEBUG_ADDRMAN
437
437
AssertLockHeld (cs);
438
438
439
439
std::unordered_set<int > setTried;
@@ -458,8 +458,10 @@ int CAddrMan::Check_()
458
458
return -4 ;
459
459
mapNew[n] = info.nRefCount ;
460
460
}
461
- if (mapAddr[info] != n)
461
+ const auto it{mapAddr.find (info)};
462
+ if (it == mapAddr.end () || it->second != n) {
462
463
return -5 ;
464
+ }
463
465
if (info.nRandomPos < 0 || (size_t )info.nRandomPos >= vRandom.size () || vRandom[info.nRandomPos ] != n)
464
466
return -14 ;
465
467
if (info.nLastTry < 0 )
@@ -478,10 +480,13 @@ int CAddrMan::Check_()
478
480
if (vvTried[n][i] != -1 ) {
479
481
if (!setTried.count (vvTried[n][i]))
480
482
return -11 ;
481
- if (mapInfo[vvTried[n][i]].GetTriedBucket (nKey, m_asmap) != n)
483
+ const auto it{mapInfo.find (vvTried[n][i])};
484
+ if (it == mapInfo.end () || it->second .GetTriedBucket (nKey, m_asmap) != n) {
482
485
return -17 ;
483
- if (mapInfo[vvTried[n][i]].GetBucketPosition (nKey, false , n) != i)
486
+ }
487
+ if (it->second .GetBucketPosition (nKey, false , n) != i) {
484
488
return -18 ;
489
+ }
485
490
setTried.erase (vvTried[n][i]);
486
491
}
487
492
}
@@ -492,8 +497,10 @@ int CAddrMan::Check_()
492
497
if (vvNew[n][i] != -1 ) {
493
498
if (!mapNew.count (vvNew[n][i]))
494
499
return -12 ;
495
- if (mapInfo[vvNew[n][i]].GetBucketPosition (nKey, true , n) != i)
500
+ const auto it{mapInfo.find (vvNew[n][i])};
501
+ if (it == mapInfo.end () || it->second .GetBucketPosition (nKey, true , n) != i) {
496
502
return -19 ;
503
+ }
497
504
if (--mapNew[vvNew[n][i]] == 0 )
498
505
mapNew.erase (vvNew[n][i]);
499
506
}
@@ -507,9 +514,9 @@ int CAddrMan::Check_()
507
514
if (nKey.IsNull ())
508
515
return -16 ;
509
516
517
+ #endif // DEBUG_ADDRMAN
510
518
return 0 ;
511
519
}
512
- #endif
513
520
514
521
void CAddrMan::GetAddr_ (std::vector<CAddress>& vAddr, size_t max_addresses, size_t max_pct, std::optional<Network> network) const
515
522
{
0 commit comments