aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjtimon <jtimon@blockstream.io>2014-09-03 02:52:01 +0200
committerjtimon <jtimon@blockstream.io>2014-09-08 22:14:24 +0200
commit6db83db3eb96809da3e680464b152f82785e38e6 (patch)
treee74fd80fe789c3550d862d088e2d6b86be547e14 /src
parenteecd3c0fb0625b036f68a7830dda8edde21fcb90 (diff)
downloadbitcoin-6db83db3eb96809da3e680464b152f82785e38e6.tar.xz
Decouple CChain from mapBlockIndex
Diffstat (limited to 'src')
-rw-r--r--src/init.cpp2
-rw-r--r--src/main.cpp11
-rw-r--r--src/main.h6
3 files changed, 10 insertions, 9 deletions
diff --git a/src/init.cpp b/src/init.cpp
index 31f64878fb..f83dfe2f99 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -1151,7 +1151,7 @@ bool AppInit2(boost::thread_group& threadGroup)
CWalletDB walletdb(strWalletFile);
CBlockLocator locator;
if (walletdb.ReadBestBlock(locator))
- pindexRescan = chainActive.FindFork(locator);
+ pindexRescan = FindForkInGlobalIndex(chainActive, locator);
else
pindexRescan = chainActive.Genesis();
}
diff --git a/src/main.cpp b/src/main.cpp
index a3b31b719d..108f8e0823 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -431,18 +431,19 @@ CBlockLocator CChain::GetLocator(const CBlockIndex *pindex) const {
return CBlockLocator(vHave);
}
-CBlockIndex *CChain::FindFork(const CBlockLocator &locator) const {
+CBlockIndex* FindForkInGlobalIndex(const CChain& chain, const CBlockLocator& locator)
+{
// Find the first block the caller has in the main chain
BOOST_FOREACH(const uint256& hash, locator.vHave) {
BlockMap::iterator mi = mapBlockIndex.find(hash);
if (mi != mapBlockIndex.end())
{
CBlockIndex* pindex = (*mi).second;
- if (Contains(pindex))
+ if (chain.Contains(pindex))
return pindex;
}
}
- return Genesis();
+ return chain.Genesis();
}
const CBlockIndex *CChain::FindFork(const CBlockIndex *pindex) const {
@@ -3672,7 +3673,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
LOCK(cs_main);
// Find the last block the caller has in the main chain
- CBlockIndex* pindex = chainActive.FindFork(locator);
+ CBlockIndex* pindex = FindForkInGlobalIndex(chainActive, locator);
// Send the rest of the chain
if (pindex)
@@ -3719,7 +3720,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
else
{
// Find the last block the caller has in the main chain
- pindex = chainActive.FindFork(locator);
+ pindex = FindForkInGlobalIndex(chainActive, locator);
if (pindex)
pindex = chainActive.Next(pindex);
}
diff --git a/src/main.h b/src/main.h
index 30cccab2f1..dbc20783bb 100644
--- a/src/main.h
+++ b/src/main.h
@@ -953,13 +953,13 @@ public:
/** Return a CBlockLocator that refers to a block in this chain (by default the tip). */
CBlockLocator GetLocator(const CBlockIndex *pindex = NULL) const;
- /** Find the last common block between this chain and a locator. */
- CBlockIndex *FindFork(const CBlockLocator &locator) const;
-
/** Find the last common block between this chain and a block index entry. */
const CBlockIndex *FindFork(const CBlockIndex *pindex) const;
};
+/** Find the last common block between the parameter chain and a locator. */
+CBlockIndex* FindForkInGlobalIndex(const CChain& chain, const CBlockLocator& locator);
+
/** The currently-connected chain of blocks. */
extern CChain chainActive;