diff --git a/src/policy/policy.cpp b/src/policy/policy.cpp --- a/src/policy/policy.cpp +++ b/src/policy/policy.cpp @@ -185,6 +185,7 @@ int64_t GetVirtualTransactionSize(const CTransaction &tx, int64_t nSigOpCost, unsigned int bytes_per_sigop) { - return GetVirtualTransactionSize(::GetSerializeSize(tx, PROTOCOL_VERSION), - nSigOpCost, bytes_per_sigop); + return GetVirtualTransactionSize( + ::GetSerializeSize(tx, SER_NETWORK, PROTOCOL_VERSION), nSigOpCost, + bytes_per_sigop); } diff --git a/src/serialize.h b/src/serialize.h --- a/src/serialize.h +++ b/src/serialize.h @@ -53,7 +53,7 @@ return const_cast(val); } -/* +/** * Lowest-level serialization and conversion. * @note Sizes of these types are verified in the tests */ @@ -498,7 +498,7 @@ */ /** - * string + * string */ template void Serialize(Stream &os, const std::basic_string &str); @@ -910,7 +910,7 @@ } template -size_t GetSerializeSize(const T &t, int nType, int nVersion = 0) { +size_t GetSerializeSize(const T &t, int nType, int nVersion) { return (CSizeComputer(nType, nVersion) << t).size(); } diff --git a/src/test/serialize_tests.cpp b/src/test/serialize_tests.cpp --- a/src/test/serialize_tests.cpp +++ b/src/test/serialize_tests.cpp @@ -63,33 +63,33 @@ }; BOOST_AUTO_TEST_CASE(sizes) { - BOOST_CHECK_EQUAL(sizeof(char), GetSerializeSize(char(0), 0)); - BOOST_CHECK_EQUAL(sizeof(int8_t), GetSerializeSize(int8_t(0), 0)); - BOOST_CHECK_EQUAL(sizeof(uint8_t), GetSerializeSize(uint8_t(0), 0)); - BOOST_CHECK_EQUAL(sizeof(int16_t), GetSerializeSize(int16_t(0), 0)); - BOOST_CHECK_EQUAL(sizeof(uint16_t), GetSerializeSize(uint16_t(0), 0)); - BOOST_CHECK_EQUAL(sizeof(int32_t), GetSerializeSize(int32_t(0), 0)); - BOOST_CHECK_EQUAL(sizeof(uint32_t), GetSerializeSize(uint32_t(0), 0)); - BOOST_CHECK_EQUAL(sizeof(int64_t), GetSerializeSize(int64_t(0), 0)); - BOOST_CHECK_EQUAL(sizeof(uint64_t), GetSerializeSize(uint64_t(0), 0)); - BOOST_CHECK_EQUAL(sizeof(float), GetSerializeSize(float(0), 0)); - BOOST_CHECK_EQUAL(sizeof(double), GetSerializeSize(double(0), 0)); + BOOST_CHECK_EQUAL(sizeof(char), GetSerializeSize(char(0), 0, 0)); + BOOST_CHECK_EQUAL(sizeof(int8_t), GetSerializeSize(int8_t(0), 0, 0)); + BOOST_CHECK_EQUAL(sizeof(uint8_t), GetSerializeSize(uint8_t(0), 0, 0)); + BOOST_CHECK_EQUAL(sizeof(int16_t), GetSerializeSize(int16_t(0), 0, 0)); + BOOST_CHECK_EQUAL(sizeof(uint16_t), GetSerializeSize(uint16_t(0), 0, 0)); + BOOST_CHECK_EQUAL(sizeof(int32_t), GetSerializeSize(int32_t(0), 0, 0)); + BOOST_CHECK_EQUAL(sizeof(uint32_t), GetSerializeSize(uint32_t(0), 0, 0)); + BOOST_CHECK_EQUAL(sizeof(int64_t), GetSerializeSize(int64_t(0), 0, 0)); + BOOST_CHECK_EQUAL(sizeof(uint64_t), GetSerializeSize(uint64_t(0), 0, 0)); + BOOST_CHECK_EQUAL(sizeof(float), GetSerializeSize(float(0), 0, 0)); + BOOST_CHECK_EQUAL(sizeof(double), GetSerializeSize(double(0), 0, 0)); // Bool is serialized as char - BOOST_CHECK_EQUAL(sizeof(char), GetSerializeSize(bool(0), 0)); + BOOST_CHECK_EQUAL(sizeof(char), GetSerializeSize(bool(0), 0, 0)); // Sanity-check GetSerializeSize and c++ type matching - BOOST_CHECK_EQUAL(GetSerializeSize(char(0), 0), 1); - BOOST_CHECK_EQUAL(GetSerializeSize(int8_t(0), 0), 1); - BOOST_CHECK_EQUAL(GetSerializeSize(uint8_t(0), 0), 1); - BOOST_CHECK_EQUAL(GetSerializeSize(int16_t(0), 0), 2); - BOOST_CHECK_EQUAL(GetSerializeSize(uint16_t(0), 0), 2); - BOOST_CHECK_EQUAL(GetSerializeSize(int32_t(0), 0), 4); - BOOST_CHECK_EQUAL(GetSerializeSize(uint32_t(0), 0), 4); - BOOST_CHECK_EQUAL(GetSerializeSize(int64_t(0), 0), 8); - BOOST_CHECK_EQUAL(GetSerializeSize(uint64_t(0), 0), 8); - BOOST_CHECK_EQUAL(GetSerializeSize(float(0), 0), 4); - BOOST_CHECK_EQUAL(GetSerializeSize(double(0), 0), 8); - BOOST_CHECK_EQUAL(GetSerializeSize(bool(0), 0), 1); + BOOST_CHECK_EQUAL(GetSerializeSize(char(0), 0, 0), 1); + BOOST_CHECK_EQUAL(GetSerializeSize(int8_t(0), 0, 0), 1); + BOOST_CHECK_EQUAL(GetSerializeSize(uint8_t(0), 0, 0), 1); + BOOST_CHECK_EQUAL(GetSerializeSize(int16_t(0), 0, 0), 2); + BOOST_CHECK_EQUAL(GetSerializeSize(uint16_t(0), 0, 0), 2); + BOOST_CHECK_EQUAL(GetSerializeSize(int32_t(0), 0, 0), 4); + BOOST_CHECK_EQUAL(GetSerializeSize(uint32_t(0), 0, 0), 4); + BOOST_CHECK_EQUAL(GetSerializeSize(int64_t(0), 0, 0), 8); + BOOST_CHECK_EQUAL(GetSerializeSize(uint64_t(0), 0, 0), 8); + BOOST_CHECK_EQUAL(GetSerializeSize(float(0), 0, 0), 4); + BOOST_CHECK_EQUAL(GetSerializeSize(double(0), 0, 0), 8); + BOOST_CHECK_EQUAL(GetSerializeSize(bool(0), 0, 0), 1); } BOOST_AUTO_TEST_CASE(floats_conversion) {