mirror of
https://github.com/boostorg/unordered.git
synced 2025-07-29 19:07:15 +02:00
Fix bug where container was reducing the number of buckets.
[SVN r56347]
This commit is contained in:
@ -406,9 +406,8 @@ namespace boost { namespace unordered_detail {
|
||||
template <class H, class P, class A, class G, class K>
|
||||
inline void hash_table<H, P, A, G, K>::create_for_insert(std::size_t size)
|
||||
{
|
||||
// TODO: Write a test to detect this bug:
|
||||
if(size > this->bucket_count_)
|
||||
this->bucket_count_ = this->min_buckets_for_size(size);
|
||||
std::size_t min_buckets = this->min_buckets_for_size(size);
|
||||
if(min_buckets > this->bucket_count_) this->bucket_count_ = min_buckets;
|
||||
this->create_buckets();
|
||||
this->init_buckets();
|
||||
}
|
||||
|
@ -250,6 +250,19 @@ void constructor_tests2(T*, test::random_generator const& generator = test::defa
|
||||
test::check_equivalent_keys(x);
|
||||
test::check_equivalent_keys(y);
|
||||
}
|
||||
|
||||
std::cerr<<"Construct 9\n";
|
||||
{
|
||||
test::random_values<T> v(100, generator);
|
||||
T x(50);
|
||||
BOOST_TEST(x.bucket_count() >= 50);
|
||||
x.max_load_factor(10);
|
||||
BOOST_TEST(x.bucket_count() >= 50);
|
||||
x.insert(v.begin(), v.end());
|
||||
BOOST_TEST(x.bucket_count() >= 50);
|
||||
test::check_container(x, v);
|
||||
test::check_equivalent_keys(x);
|
||||
}
|
||||
}
|
||||
|
||||
template <class T>
|
||||
|
Reference in New Issue
Block a user