Avoid reading uninitialized variables in serialization code (triggered when running make check).
Note that the variable nVersionDummy is read in the call to the CVarInt constructor:
template<VarIntMode Mode, typename I>
class CVarInt
{
protected:
I &n;
public:
explicit CVarInt(I& nIn) : n(nIn) { }
…
}
template<typename T>
inline T& REF(const T& val)
{
return const_cast<T&>(val);
}
CVarInt<Mode, I> WrapVarInt(I& n) { return CVarInt<Mode, I>{n}; }
#define VARINT(obj, ...) WrapVarInt<__VA_ARGS__>(REF(obj))
unsigned int nVersionDummy;
::Unserialize(s, VARINT(nVersionDummy));