diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2014-07-31 09:20:04 +0200 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2014-07-31 09:25:20 +0200 |
commit | 2870014f3a1fee5952110b349658152e1dc82de9 (patch) | |
tree | 1895cb4b1e7808b16f261c45799e8350e6a67f8a /src | |
parent | c7614f16d6d123ef182180a96fe43449e73db0b0 (diff) | |
parent | 9c347313f7f504d602a9d744f1ad7aee4e3d6f9a (diff) |
Merge pull request #4568
9c34731 CBloomFilter::clear() method (Tom Harding)
Diffstat (limited to 'src')
-rw-r--r-- | src/bloom.cpp | 7 | ||||
-rw-r--r-- | src/bloom.h | 2 | ||||
-rw-r--r-- | src/test/bloom_tests.cpp | 4 |
3 files changed, 13 insertions, 0 deletions
diff --git a/src/bloom.cpp b/src/bloom.cpp index 26e366179c..85a2ddc189 100644 --- a/src/bloom.cpp +++ b/src/bloom.cpp @@ -94,6 +94,13 @@ bool CBloomFilter::contains(const uint256& hash) const return contains(data); } +void CBloomFilter::clear() +{ + vData.assign(vData.size(),0); + isFull = false; + isEmpty = true; +} + bool CBloomFilter::IsWithinSizeConstraints() const { return vData.size() <= MAX_BLOOM_FILTER_SIZE && nHashFuncs <= MAX_HASH_FUNCS; diff --git a/src/bloom.h b/src/bloom.h index 956bead87f..d0caf9e9fa 100644 --- a/src/bloom.h +++ b/src/bloom.h @@ -78,6 +78,8 @@ public: bool contains(const COutPoint& outpoint) const; bool contains(const uint256& hash) const; + void clear(); + // True if the size is <= MAX_BLOOM_FILTER_SIZE and the number of hash functions is <= MAX_HASH_FUNCS // (catch a filter which was just deserialized which was too big) bool IsWithinSizeConstraints() const; diff --git a/src/test/bloom_tests.cpp b/src/test/bloom_tests.cpp index 69de3b5bb1..2cdafa4bdd 100644 --- a/src/test/bloom_tests.cpp +++ b/src/test/bloom_tests.cpp @@ -45,6 +45,10 @@ BOOST_AUTO_TEST_CASE(bloom_create_insert_serialize) expected[i] = (char)vch[i]; BOOST_CHECK_EQUAL_COLLECTIONS(stream.begin(), stream.end(), expected.begin(), expected.end()); + + BOOST_CHECK_MESSAGE( filter.contains(ParseHex("99108ad8ed9bb6274d3980bab5a85c048f0950c8")), "BloomFilter doesn't contain just-inserted object!"); + filter.clear(); + BOOST_CHECK_MESSAGE( !filter.contains(ParseHex("99108ad8ed9bb6274d3980bab5a85c048f0950c8")), "BloomFilter should be empty!"); } BOOST_AUTO_TEST_CASE(bloom_create_insert_serialize_with_tweak) |