Commit 6d24de83 by François Dumont Committed by François Dumont

unordered_map (unordered_map<>::_M_profile_size): Simplify, don't take a…

unordered_map (unordered_map<>::_M_profile_size): Simplify, don't take a __new_size argument; adjust all callers.

2010-11-10  François Dumont  <francois.cppdevs@free.fr>

        * include/profile/unordered_map (unordered_map<>::_M_profile_size): 
        Simplify, don't take a __new_size argument; adjust all callers.

From-SVN: r166560
parent 5a4b6c0e
2010-11-10 François Dumont <francois.cppdevs@free.fr>
* include/profile/unordered_map (unordered_map<>::_M_profile_size):
Simplify, don't take a __new_size argument; adjust all callers.
2010-11-10 Paolo Carlini <paolo.carlini@oracle.com> 2010-11-10 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/44436 (partial) PR libstdc++/44436 (partial)
...@@ -1524,13 +1529,13 @@ ...@@ -1524,13 +1529,13 @@
2010-09-03 François Dumont <francois.cppdevs@free.fr> 2010-09-03 François Dumont <francois.cppdevs@free.fr>
* testsuite/lib/libstdc++.exp ([check_v3_target_debug_mode]): Fix so * testsuite/lib/libstdc++.exp ([check_v3_target_debug_mode]): Fix so
that it really detects when debug mode is activated. that it really detects when debug mode is activated.
* testsuite/util/debug/construct_neg.h, insert_neg.h, assign_neg.h: * testsuite/util/debug/construct_neg.h, insert_neg.h, assign_neg.h:
Remove, content moved... Remove, content moved...
* testsuite/util/debug/checks.h: ... here. Modify checks to take the * testsuite/util/debug/checks.h: ... here. Modify checks to take the
type of the container to test rather than an intermediate container type of the container to test rather than an intermediate container
type traits helper. type traits helper.
* testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Update to * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Update to
use dg-require-debug-mode when necessary and use new check functions. use dg-require-debug-mode when necessary and use new check functions.
* testsuite/23_containers/unordered_map/debug/construct1_neg.cc: * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
......
...@@ -170,7 +170,7 @@ namespace __profile ...@@ -170,7 +170,7 @@ namespace __profile
{ {
size_type __old_size = _Base::bucket_count(); size_type __old_size = _Base::bucket_count();
_Base::insert(__l); _Base::insert(__l);
_M_profile_resize(__old_size, _Base::bucket_count()); _M_profile_resize(__old_size);
} }
std::pair<iterator, bool> std::pair<iterator, bool>
...@@ -178,7 +178,7 @@ namespace __profile ...@@ -178,7 +178,7 @@ namespace __profile
{ {
size_type __old_size = _Base::bucket_count(); size_type __old_size = _Base::bucket_count();
std::pair<iterator, bool> __res = _Base::insert(__obj); std::pair<iterator, bool> __res = _Base::insert(__obj);
_M_profile_resize(__old_size, _Base::bucket_count()); _M_profile_resize(__old_size);
return __res; return __res;
} }
...@@ -187,7 +187,7 @@ namespace __profile ...@@ -187,7 +187,7 @@ namespace __profile
{ {
size_type __old_size = _Base::bucket_count(); size_type __old_size = _Base::bucket_count();
iterator __res = _Base::insert(__iter, __v); iterator __res = _Base::insert(__iter, __v);
_M_profile_resize(__old_size, _Base::bucket_count()); _M_profile_resize(__old_size);
return __res; return __res;
} }
...@@ -200,7 +200,7 @@ namespace __profile ...@@ -200,7 +200,7 @@ namespace __profile
size_type __old_size = _Base::bucket_count(); size_type __old_size = _Base::bucket_count();
std::pair<iterator, bool> __res std::pair<iterator, bool> __res
= _Base::insert(std::forward<_Pair>(__obj)); = _Base::insert(std::forward<_Pair>(__obj));
_M_profile_resize(__old_size, _Base::bucket_count()); _M_profile_resize(__old_size);
return __res; return __res;
} }
...@@ -212,7 +212,7 @@ namespace __profile ...@@ -212,7 +212,7 @@ namespace __profile
{ {
size_type __old_size = _Base::bucket_count(); size_type __old_size = _Base::bucket_count();
iterator __res = _Base::insert(__iter, std::forward<_Pair>(__v)); iterator __res = _Base::insert(__iter, std::forward<_Pair>(__v));
_M_profile_resize(__old_size, _Base::bucket_count()); _M_profile_resize(__old_size);
return __res; return __res;
} }
...@@ -222,7 +222,7 @@ namespace __profile ...@@ -222,7 +222,7 @@ namespace __profile
{ {
size_type __old_size = _Base::bucket_count(); size_type __old_size = _Base::bucket_count();
_Base::insert(__first, __last); _Base::insert(__first, __last);
_M_profile_resize(__old_size, _Base::bucket_count()); _M_profile_resize(__old_size);
} }
void void
...@@ -230,7 +230,7 @@ namespace __profile ...@@ -230,7 +230,7 @@ namespace __profile
{ {
size_type __old_size = _Base::bucket_count(); size_type __old_size = _Base::bucket_count();
_Base::insert(__first, __last); _Base::insert(__first, __last);
_M_profile_resize(__old_size, _Base::bucket_count()); _M_profile_resize(__old_size);
} }
// operator[] // operator[]
...@@ -239,8 +239,7 @@ namespace __profile ...@@ -239,8 +239,7 @@ namespace __profile
{ {
size_type __old_size = _Base::bucket_count(); size_type __old_size = _Base::bucket_count();
mapped_type& __res = _M_base()[__k]; mapped_type& __res = _M_base()[__k];
size_type __new_size = _Base::bucket_count(); _M_profile_resize(__old_size);
_M_profile_resize(__old_size, _Base::bucket_count());
return __res; return __res;
} }
...@@ -249,8 +248,7 @@ namespace __profile ...@@ -249,8 +248,7 @@ namespace __profile
{ {
size_type __old_size = _Base::bucket_count(); size_type __old_size = _Base::bucket_count();
mapped_type& __res = _M_base()[std::move(__k)]; mapped_type& __res = _M_base()[std::move(__k)];
size_type __new_size = _Base::bucket_count(); _M_profile_resize(__old_size);
_M_profile_resize(__old_size, _Base::bucket_count());
return __res; return __res;
} }
...@@ -262,13 +260,14 @@ namespace __profile ...@@ -262,13 +260,14 @@ namespace __profile
{ {
size_type __old_size = _Base::bucket_count(); size_type __old_size = _Base::bucket_count();
_Base::rehash(__n); _Base::rehash(__n);
_M_profile_resize(__old_size, _Base::bucket_count()); _M_profile_resize(__old_size);
} }
private: private:
void void
_M_profile_resize(size_type __old_size, size_type __new_size) _M_profile_resize(size_type __old_size)
{ {
size_type __new_size = _Base::bucket_count();
if (__old_size != __new_size) if (__old_size != __new_size)
__profcxx_hashtable_resize(this, __old_size, __new_size); __profcxx_hashtable_resize(this, __old_size, __new_size);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment