summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>2013-02-27 19:14:03 +0100
committerDanny Al-Gaaf <danny.al-gaaf@bisect.de>2013-02-27 19:14:03 +0100
commitca71457bf0ce1f0110e2996c7f5692fbcb03aa28 (patch)
treef5ec728557aa394b691cc05d406d09e7e09e76ba
parent8d35a660e46b7fb2d05bd1dd1844c882c2aae54c (diff)
downloadceph-ca71457bf0ce1f0110e2996c7f5692fbcb03aa28.tar.gz
bloom_filter.hpp: check for self assignment
Check for self assignment in operator= to avoid problems with dynamic memory (cppcheck). Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-rw-r--r--src/include/bloom_filter.hpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/include/bloom_filter.hpp b/src/include/bloom_filter.hpp
index 66f620c8df9..41aba4bad47 100644
--- a/src/include/bloom_filter.hpp
+++ b/src/include/bloom_filter.hpp
@@ -72,17 +72,19 @@ public:
bloom_filter& operator = (const bloom_filter& filter)
{
- salt_count_ = filter.salt_count_;
- table_size_ = filter.table_size_;
- raw_table_size_ = filter.raw_table_size_;
- predicted_inserted_element_count_ = filter.predicted_inserted_element_count_;
- inserted_element_count_ = filter.inserted_element_count_;
- random_seed_ = filter.random_seed_;
- desired_false_positive_probability_ = filter.desired_false_positive_probability_;
- delete[] bit_table_;
- bit_table_ = new cell_type[raw_table_size_];
- std::copy(filter.bit_table_,filter.bit_table_ + raw_table_size_,bit_table_);
- salt_ = filter.salt_;
+ if (this != &filter) {
+ salt_count_ = filter.salt_count_;
+ table_size_ = filter.table_size_;
+ raw_table_size_ = filter.raw_table_size_;
+ predicted_inserted_element_count_ = filter.predicted_inserted_element_count_;
+ inserted_element_count_ = filter.inserted_element_count_;
+ random_seed_ = filter.random_seed_;
+ desired_false_positive_probability_ = filter.desired_false_positive_probability_;
+ delete[] bit_table_;
+ bit_table_ = new cell_type[raw_table_size_];
+ std::copy(filter.bit_table_,filter.bit_table_ + raw_table_size_,bit_table_);
+ salt_ = filter.salt_;
+ }
return *this;
}