Super nitty, I was just curious about what the possible ways of doing this are, and maybe this is preferable:
Making GetAllImpl
a static member, so it doesn’t need to be passed both a self
and a this
pointer:
0diff --git a/src/validation.cpp b/src/validation.cpp
1index 8fb8a876b3f..58bcd9e84e6 100644
2--- a/src/validation.cpp
3+++ b/src/validation.cpp
4@@ -5646,14 +5646,14 @@ std::optional<uint256> ChainstateManager::SnapshotBlockhash() const
5 }
6
7 template <typename T>
8-auto ChainstateManager::GetAllImpl(T* self) const
9+auto ChainstateManager::GetAllImpl(T* self)
10 -> std::vector<std::conditional_t<std::is_const_v<T>, const Chainstate*, Chainstate*>>
11 {
12 LOCK(::cs_main);
13 using ChainstatePtr = std::conditional_t<std::is_const_v<T>, const Chainstate*, Chainstate*>;
14 std::vector<ChainstatePtr> out;
15
16- for (ChainstatePtr cs : {m_ibd_chainstate.get(), m_snapshot_chainstate.get()}) {
17+ for (ChainstatePtr cs : {self->m_ibd_chainstate.get(), self->m_snapshot_chainstate.get()}) {
18 if (self->IsUsable(cs)) out.push_back(cs);
19 }
20
21diff --git a/src/validation.h b/src/validation.h
22index 40420e11223..3ccb25dc29f 100644
23--- a/src/validation.h
24+++ b/src/validation.h
25@@ -968,7 +968,7 @@ private:
26 //! [@see](/bitcoin-bitcoin/contributor/see/) GetAll() const
27 //! [@see](/bitcoin-bitcoin/contributor/see/) GetAll()
28 template <typename T>
29- auto GetAllImpl(T* self) const
30+ static auto GetAllImpl(T* self)
31 -> std::vector<std::conditional_t<std::is_const_v<T>, const Chainstate*, Chainstate*>>;
32
33 public: