diff options
| author | Wladimir J. van der Laan <[email protected]> | 2014-07-31 09:20:04 +0200 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2014-07-31 09:25:20 +0200 |
| commit | 2870014f3a1fee5952110b349658152e1dc82de9 (patch) | |
| tree | 1895cb4b1e7808b16f261c45799e8350e6a67f8a | |
| parent | univalue: remove unused methods getArray, getObject (diff) | |
| parent | CBloomFilter::clear() method (diff) | |
| download | discoin-2870014f3a1fee5952110b349658152e1dc82de9.tar.xz discoin-2870014f3a1fee5952110b349658152e1dc82de9.zip | |
Merge pull request #4568
9c34731 CBloomFilter::clear() method (Tom Harding)
| -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 26e366179..85a2ddc18 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 956bead87..d0caf9e9f 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 69de3b5bb..2cdafa4bd 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) |