aboutsummaryrefslogtreecommitdiff
path: root/src/bloom.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/bloom.h')
-rw-r--r--src/bloom.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/bloom.h b/src/bloom.h
index 389ae748e6..f482bfcc10 100644
--- a/src/bloom.h
+++ b/src/bloom.h
@@ -42,6 +42,8 @@ class CBloomFilter
{
private:
std::vector<unsigned char> vData;
+ bool isFull;
+ bool isEmpty;
unsigned int nHashFuncs;
unsigned int nTweak;
unsigned char nFlags;
@@ -57,9 +59,7 @@ public:
// It should generally always be a random value (and is largely only exposed for unit testing)
// nFlags should be one of the BLOOM_UPDATE_* enums (not _MASK)
CBloomFilter(unsigned int nElements, double nFPRate, unsigned int nTweak, unsigned char nFlagsIn);
- // Using a filter initialized with this results in undefined behavior
- // Should only be used for deserialization
- CBloomFilter() {}
+ CBloomFilter() : isFull(true) {}
IMPLEMENT_SERIALIZE
(
@@ -83,6 +83,9 @@ public:
// Also adds any outputs which match the filter to the filter (to match their spending txes)
bool IsRelevantAndUpdate(const CTransaction& tx, const uint256& hash);
+
+ // Checks for empty and full filters to avoid wasting cpu
+ void UpdateEmptyFull();
};
#endif /* BITCOIN_BLOOM_H */