diff options
author | Danny Al-Gaaf <danny.al-gaaf@bisect.de> | 2013-02-27 19:14:03 +0100 |
---|---|---|
committer | Danny Al-Gaaf <danny.al-gaaf@bisect.de> | 2013-02-27 19:14:03 +0100 |
commit | ca71457bf0ce1f0110e2996c7f5692fbcb03aa28 (patch) | |
tree | f5ec728557aa394b691cc05d406d09e7e09e76ba | |
parent | 8d35a660e46b7fb2d05bd1dd1844c882c2aae54c (diff) | |
download | ceph-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.hpp | 24 |
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; } |