diff options
author | François Dumont <francois.cppdevs@free.fr> | 2011-06-12 17:51:36 +0200 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2011-06-12 15:51:36 +0000 |
commit | 8a752dfea6f512ecb19a7f2fd535b8862ef3dbe2 (patch) | |
tree | 35ec9f7a850f39851d2e1c34a6db9f76d61e6e77 /libstdc++-v3/include/ext | |
parent | 0a7aa509afa59aa494c75f3ff7f285895800d538 (diff) | |
download | gcc-8a752dfea6f512ecb19a7f2fd535b8862ef3dbe2.zip gcc-8a752dfea6f512ecb19a7f2fd535b8862ef3dbe2.tar.gz gcc-8a752dfea6f512ecb19a7f2fd535b8862ef3dbe2.tar.bz2 |
allocator.h (__shrink_to_fit): Rename to __shrink_to_fit_aux, fix.
2011-06-12 François Dumont <francois.cppdevs@free.fr>
Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/allocator.h (__shrink_to_fit): Rename to
__shrink_to_fit_aux, fix.
* include/bits/stl_vector.h (_M_shrink_to_fit): Declare.
(shrink_to_fit): Use the latter.
* include/debug/vector (shrink_to_fit): Likewise.
* include/bits/vector.tcc (_M_shrink_to_fit): Define.
* include/bits/stl_deque.h (_M_shrink_to_fit): Declare.
(shrink_to_fit): Use the latter.
* include/debug/deque (shrink_to_fit): Likewise.
* include/bits/deque.tcc (_M_shrink_to_fit): Define.
* include/bits/vector.tcc (vector<bool>::_M_reallocate): Add.
* include/bits/stl_bvector.h (_M_shrink_to_fit): Declare.
(shrink_to_fit): Use the latter.
(reserve): Use _M_reallocate, move inline.
(_Bvector_base<>::_S_nword): Add, use it throughout.
* include/debug/string (shrink_to_fit): Redo.
* include/ext/vstring.h (shrink_to_fit): Optimize.
* include/bits/basic_string.h (shrink_to_fit): Likewise.
* testsuite/21_strings/debug/shrink_to_fit.cc: New.
* testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
* testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc:
Likewise.
* testsuite/23_containers/vector/bool/capacity/shrink_to_fit.cc:
Likewise.
* testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r174967
Diffstat (limited to 'libstdc++-v3/include/ext')
-rw-r--r-- | libstdc++-v3/include/ext/vstring.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/libstdc++-v3/include/ext/vstring.h b/libstdc++-v3/include/ext/vstring.h index a843368..b0b3e2e 100644 --- a/libstdc++-v3/include/ext/vstring.h +++ b/libstdc++-v3/include/ext/vstring.h @@ -465,10 +465,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION void shrink_to_fit() { - __try - { this->reserve(0); } - __catch(...) - { } + if (capacity() > size()) + { + __try + { this->reserve(0); } + __catch(...) + { } + } } #endif |