From cbc679558590aaada586364f6fb99020f777ae35 Mon Sep 17 00:00:00 2001 From: Neil Ferguson Date: Thu, 11 Dec 2003 22:29:12 +0000 Subject: [PATCH] basic_string.tcc (reserve): Allow shrink-to-fit. 2003-12-11 Neil Ferguson Paolo Carlini * include/bits/basic_string.tcc (reserve): Allow shrink-to-fit. * testsuite/21_strings/basic_string/capacity/1.cc: Tweak. * testsuite/21_strings/basic_string/capacity/char/1.cc: Ditto. * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Ditto. Co-Authored-By: Paolo Carlini From-SVN: r74551 --- libstdc++-v3/ChangeLog | 8 ++++++++ libstdc++-v3/include/bits/basic_string.tcc | 2 +- .../testsuite/21_strings/basic_string/capacity/1.cc | 2 +- .../testsuite/21_strings/basic_string/capacity/char/1.cc | 2 +- .../21_strings/basic_string/capacity/wchar_t/1.cc | 2 +- 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 39fcdb90191..45d7c7e5535 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2003-12-11 Neil Ferguson + Paolo Carlini + + * include/bits/basic_string.tcc (reserve): Allow shrink-to-fit. + * testsuite/21_strings/basic_string/capacity/1.cc: Tweak. + * testsuite/21_strings/basic_string/capacity/char/1.cc: Ditto. + * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Ditto. + 2003-12-10 Benjamin Kosnik PR libstdc++/6243 diff --git a/libstdc++-v3/include/bits/basic_string.tcc b/libstdc++-v3/include/bits/basic_string.tcc index 204757b3dc6..3a1e8468eb0 100644 --- a/libstdc++-v3/include/bits/basic_string.tcc +++ b/libstdc++-v3/include/bits/basic_string.tcc @@ -474,7 +474,7 @@ namespace std void basic_string<_CharT, _Traits, _Alloc>::reserve(size_type __res) { - if (__res > this->capacity() || _M_rep()->_M_is_shared()) + if (__res != this->capacity() || _M_rep()->_M_is_shared()) { if (__res > this->max_size()) __throw_length_error("basic_string::reserve"); diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/1.cc index c37e01fb046..2599d4298ff 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/1.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/1.cc @@ -140,7 +140,7 @@ void test01() VERIFY( sz04 >= 100 ); str02.reserve(); sz03 = str02.capacity(); - VERIFY( sz03 > 0 ); + VERIFY( sz03 >= 0 ); sz03 = str02.size() + 5; str02.resize(sz03); diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc index 649c5418ba6..9cdc4f0457c 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc @@ -37,7 +37,7 @@ void test01() VERIFY( sz02 >= 100 ); str01.reserve(); sz01 = str01.capacity(); - VERIFY( sz01 > 0 ); + VERIFY( sz01 >= 0 ); sz01 = str01.size() + 5; str01.resize(sz01); diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/1.cc b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/1.cc index f10a25578a0..925d812c748 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/1.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/1.cc @@ -37,7 +37,7 @@ void test01() VERIFY( sz02 >= 100 ); str01.reserve(); sz01 = str01.capacity(); - VERIFY( sz01 > 0 ); + VERIFY( sz01 >= 0 ); sz01 = str01.size() + 5; str01.resize(sz01);