diff --git a/src/script/sign.h b/src/script/sign.h --- a/src/script/sign.h +++ b/src/script/sign.h @@ -164,7 +164,7 @@ // all objects concatenated with each other. template void SerializeToVector(Stream &s, const X &... args) { - WriteCompactSize(s, GetSerializeSizeMany(s, args...)); + WriteCompactSize(s, GetSerializeSizeMany(s.GetVersion(), args...)); SerializeMany(s, args...); } diff --git a/src/serialize.h b/src/serialize.h --- a/src/serialize.h +++ b/src/serialize.h @@ -988,14 +988,9 @@ return (CSizeComputer(nVersion) << t).size(); } -template -size_t GetSerializeSize(const S &s, const T &t) { - return (CSizeComputer(s.GetVersion()) << t).size(); -} - -template -size_t GetSerializeSizeMany(const S &s, const T &... t) { - CSizeComputer sc(s.GetVersion()); +template +size_t GetSerializeSizeMany(int nVersion, const T &... t) { + CSizeComputer sc(nVersion); SerializeMany(sc, t...); return sc.size(); } diff --git a/src/validation.cpp b/src/validation.cpp --- a/src/validation.cpp +++ b/src/validation.cpp @@ -963,7 +963,7 @@ } // Write index header - unsigned int nSize = GetSerializeSize(fileout, block); + unsigned int nSize = GetSerializeSize(block, fileout.GetVersion()); fileout << messageStart << nSize; // Write block @@ -1363,7 +1363,7 @@ } // Write index header - unsigned int nSize = GetSerializeSize(fileout, blockundo); + unsigned int nSize = GetSerializeSize(blockundo, fileout.GetVersion()); fileout << messageStart << nSize; // Write undo data