diff options
| author | Matt Corallo <[email protected]> | 2013-02-24 20:36:59 -0500 |
|---|---|---|
| committer | Matt Corallo <[email protected]> | 2013-02-24 20:36:59 -0500 |
| commit | cbfc77352d095d562860fa8695ada5ac73cf7f67 (patch) | |
| tree | acbd0f91b5aec585c6b5b48b986923be26cf30cf /src/bloom.cpp | |
| parent | Merge pull request #2186 from Diapolo/misc_stuff (diff) | |
| download | discoin-cbfc77352d095d562860fa8695ada5ac73cf7f67.tar.xz discoin-cbfc77352d095d562860fa8695ada5ac73cf7f67.zip | |
Short-circuit bloom checking if we will always return true.
This allows full nodes to use bloom filters as an optimization.
Diffstat (limited to 'src/bloom.cpp')
| -rw-r--r-- | src/bloom.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/bloom.cpp b/src/bloom.cpp index 36f5e5013..d9ec2efa8 100644 --- a/src/bloom.cpp +++ b/src/bloom.cpp @@ -37,6 +37,8 @@ inline unsigned int CBloomFilter::Hash(unsigned int nHashNum, const std::vector< void CBloomFilter::insert(const vector<unsigned char>& vKey) { + if (vData.size() == 1 && vData[0] == 0xff) + return; for (unsigned int i = 0; i < nHashFuncs; i++) { unsigned int nIndex = Hash(i, vKey); @@ -61,6 +63,8 @@ void CBloomFilter::insert(const uint256& hash) bool CBloomFilter::contains(const vector<unsigned char>& vKey) const { + if (vData.size() == 1 && vData[0] == 0xff) + return true; for (unsigned int i = 0; i < nHashFuncs; i++) { unsigned int nIndex = Hash(i, vKey); |