From cb4eaf762c967aaede75a5da8ace06eca508f82e Mon Sep 17 00:00:00 2001 From: Matthias Vallentin Date: Tue, 15 Apr 2014 12:36:57 +0200 Subject: [PATCH] Fix bug when clearing Bloom filter contents. This patch fixes a bug that occurred when calling the BiF bloomfilter_clear, which used to not only clear the underlying bit vector but also set its size to zero. As a result, subsequent element access or computations using the bit vector size caused erroneous behavior. Reported by @colonelxc. --- src/probabilistic/BloomFilter.cc | 4 ++-- src/probabilistic/CounterVector.cc | 4 ++-- src/probabilistic/CounterVector.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/probabilistic/BloomFilter.cc b/src/probabilistic/BloomFilter.cc index f6e4017626..ef671268b9 100644 --- a/src/probabilistic/BloomFilter.cc +++ b/src/probabilistic/BloomFilter.cc @@ -72,7 +72,7 @@ bool BasicBloomFilter::Empty() const void BasicBloomFilter::Clear() { - bits->Clear(); + bits->Reset(); } bool BasicBloomFilter::Merge(const BloomFilter* other) @@ -190,7 +190,7 @@ bool CountingBloomFilter::Empty() const void CountingBloomFilter::Clear() { - cells->Clear(); + cells->Reset(); } bool CountingBloomFilter::Merge(const BloomFilter* other) diff --git a/src/probabilistic/CounterVector.cc b/src/probabilistic/CounterVector.cc index 317a28d851..8608015422 100644 --- a/src/probabilistic/CounterVector.cc +++ b/src/probabilistic/CounterVector.cc @@ -75,9 +75,9 @@ bool CounterVector::AllZero() const return bits->AllZero(); } -void CounterVector::Clear() +void CounterVector::Reset() { - bits->Clear(); + bits->Reset(); } CounterVector::count_type CounterVector::Count(size_type cell) const diff --git a/src/probabilistic/CounterVector.h b/src/probabilistic/CounterVector.h index d3efd1aa31..247a646eb1 100644 --- a/src/probabilistic/CounterVector.h +++ b/src/probabilistic/CounterVector.h @@ -86,7 +86,7 @@ public: /** * Sets all counters to 0. */ - void Clear(); + void Reset(); /** * Retrieves the number of cells in the storage.