This is part of the assumeutxo project:
Parent PR: #15606
Issue: #15605
Specification: https://github.com/jamesob/assumeutxo-docs/tree/2019-04-proposal/proposal
This change refactors the chainActive reference into a ::ChainActive() call. It also distinguishes CChainState's CChain data member as m_chain instead of the current chainActive, which makes it easily confused with the global data.
The active chain must be obtained via function because its reference will be swapped at some point during runtime after loading a UTXO snapshot.
This change, though lengthy, should be pretty easy to review since most of it is contained within a scripted-diff. Once merged, the parent PR should be easier to review.
//rename: CChainState.chainActive -> m_chain//
---
Partial Backport of Bitcoin Core 15948 (commit 1b6e6fcfd2):
https://github.com/bitcoin/bitcoin/pull/15948/commits/1b6e6fcfd2f8a8def148ea0f50af202d5cae318a
Prevent callback overruns in InvalidateBlock and RewindBlockIndex