Remove sharp edge (uninitialized m_filter_type) when using the compiler-generated constructor for BlockFilter

pull/764/head
practicalswift 6 years ago
parent 2d46f1be0c
commit 82c3b3f8e0

@ -251,6 +251,8 @@ bool BlockFilter::BuildParams(GCSFilter::Params& params) const
params.m_P = BASIC_FILTER_P; params.m_P = BASIC_FILTER_P;
params.m_M = BASIC_FILTER_M; params.m_M = BASIC_FILTER_M;
return true; return true;
case BlockFilterType::INVALID:
return false;
} }
return false; return false;

@ -83,9 +83,10 @@ public:
constexpr uint8_t BASIC_FILTER_P = 19; constexpr uint8_t BASIC_FILTER_P = 19;
constexpr uint32_t BASIC_FILTER_M = 784931; constexpr uint32_t BASIC_FILTER_M = 784931;
enum BlockFilterType : uint8_t enum class BlockFilterType : uint8_t
{ {
BASIC = 0, BASIC = 0,
INVALID = 255,
}; };
/** /**
@ -95,7 +96,7 @@ enum BlockFilterType : uint8_t
class BlockFilter class BlockFilter
{ {
private: private:
BlockFilterType m_filter_type; BlockFilterType m_filter_type = BlockFilterType::INVALID;
uint256 m_block_hash; uint256 m_block_hash;
GCSFilter m_filter; GCSFilter m_filter;

@ -112,6 +112,12 @@ BOOST_AUTO_TEST_CASE(blockfilter_basic_test)
BOOST_CHECK_EQUAL(block_filter.GetFilterType(), block_filter2.GetFilterType()); BOOST_CHECK_EQUAL(block_filter.GetFilterType(), block_filter2.GetFilterType());
BOOST_CHECK_EQUAL(block_filter.GetBlockHash(), block_filter2.GetBlockHash()); BOOST_CHECK_EQUAL(block_filter.GetBlockHash(), block_filter2.GetBlockHash());
BOOST_CHECK(block_filter.GetEncodedFilter() == block_filter2.GetEncodedFilter()); BOOST_CHECK(block_filter.GetEncodedFilter() == block_filter2.GetEncodedFilter());
BlockFilter default_ctor_block_filter_1;
BlockFilter default_ctor_block_filter_2;
BOOST_CHECK_EQUAL(default_ctor_block_filter_1.GetFilterType(), default_ctor_block_filter_2.GetFilterType());
BOOST_CHECK_EQUAL(default_ctor_block_filter_1.GetBlockHash(), default_ctor_block_filter_2.GetBlockHash());
BOOST_CHECK(default_ctor_block_filter_1.GetEncodedFilter() == default_ctor_block_filter_2.GetEncodedFilter());
} }
BOOST_AUTO_TEST_CASE(blockfilters_json_test) BOOST_AUTO_TEST_CASE(blockfilters_json_test)

Loading…
Cancel
Save