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
This commit is contained in:
François Dumont 2010-11-10 22:53:43 +01:00 committed by François Dumont
parent 5a4b6c0e97
commit 6d24de8354
2 changed files with 23 additions and 19 deletions

View File

@ -1,3 +1,8 @@
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 @@
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:

View File

@ -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
{ {
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
{ {
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
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
{ {
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
{ {
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
{ {
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
{ {
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
{ {
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
{ {
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);
} }