aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2015-01-02 17:35:36 +0100
committerWladimir J. van der Laan <laanwj@gmail.com>2015-01-02 17:35:45 +0100
commit40d65eb66d0865aa64c410c3eb970dafcad71851 (patch)
tree841e424200570715a0402714c2add3ca1ccaed78 /src
parent269d8ba0d24eb9a35c8c9e4995eccedfb723717b (diff)
parent1b178a7f966cd3649b7f0a52ffc4b8ef4c227900 (diff)
downloadbitcoin-40d65eb66d0865aa64c410c3eb970dafcad71851.tar.xz
Merge pull request #5580
1b178a7 Bugfix: ConnectBlock: In case the genesis block gets in with fJustCheck, behave correctly (Luke Dashjr) 228d238 Make CCoinsViewCache's copy constructor private (Luke Dashjr)
Diffstat (limited to 'src')
-rw-r--r--src/coins.h5
-rw-r--r--src/main.cpp3
2 files changed, 7 insertions, 1 deletions
diff --git a/src/coins.h b/src/coins.h
index 2be52ad171..4f1afb00de 100644
--- a/src/coins.h
+++ b/src/coins.h
@@ -437,6 +437,11 @@ public:
private:
CCoinsMap::iterator FetchCoins(const uint256 &txid);
CCoinsMap::const_iterator FetchCoins(const uint256 &txid) const;
+
+ /**
+ * By making the copy constructor private, we prevent accidentally using it when one intends to create a cache on top of a base cache.
+ */
+ CCoinsViewCache(const CCoinsViewCache &);
};
#endif // BITCOIN_COINS_H
diff --git a/src/main.cpp b/src/main.cpp
index 5c0f0116d6..675b8afd1d 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1718,7 +1718,8 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin
// Special case for the genesis block, skipping connection of its transactions
// (its coinbase is unspendable)
if (block.GetHash() == Params().HashGenesisBlock()) {
- view.SetBestBlock(pindex->GetBlockHash());
+ if (!fJustCheck)
+ view.SetBestBlock(pindex->GetBlockHash());
return true;
}