Browse Source

Merge #7491: wallet: Ignore MarkConflict if block hash is not known

40e7b61 wallet: Ignore MarkConflict if block hash is not known (Wladimir J. van der Laan)
0.13
Wladimir J. van der Laan 9 years ago
parent
commit
c9da9c4bd8
No known key found for this signature in database
GPG Key ID: 74810B012346C9A6
  1. 17
      src/wallet/wallet.cpp

17
src/wallet/wallet.cpp

@ -846,14 +846,19 @@ void CWallet::MarkConflicted(const uint256& hashBlock, const uint256& hashTx) @@ -846,14 +846,19 @@ void CWallet::MarkConflicted(const uint256& hashBlock, const uint256& hashTx)
{
LOCK2(cs_main, cs_wallet);
CBlockIndex* pindex;
assert(mapBlockIndex.count(hashBlock));
pindex = mapBlockIndex[hashBlock];
int conflictconfirms = 0;
if (chainActive.Contains(pindex)) {
conflictconfirms = -(chainActive.Height() - pindex->nHeight + 1);
if (mapBlockIndex.count(hashBlock)) {
CBlockIndex* pindex = mapBlockIndex[hashBlock];
if (chainActive.Contains(pindex)) {
conflictconfirms = -(chainActive.Height() - pindex->nHeight + 1);
}
}
assert(conflictconfirms < 0);
// If number of conflict confirms cannot be determined, this means
// that the block is still unknown or not yet part of the main chain,
// for example when loading the wallet during a reindex. Do nothing in that
// case.
if (conflictconfirms >= 0)
return;
// Do not flush the wallet here for performance reasons
CWalletDB walletdb(strWalletFile, "r+", false);

Loading…
Cancel
Save