]> git.ipfire.org Git - thirdparty/gcc.git/commit
basic_string.h (_Rep::_M_is_safe, [...]): New, use througout.
authorPaolo Carlini <pcarlini@suse.de>
Mon, 25 Oct 2004 08:45:04 +0000 (08:45 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Mon, 25 Oct 2004 08:45:04 +0000 (08:45 +0000)
commitec61e852bc917b45c288e17fa4f1cb06145cf95e
tree53f134c47b30d8ff6221eeacd91087abc68323a9
parent4318d4a1b62579003c5df549e212c711364e535d
basic_string.h (_Rep::_M_is_safe, [...]): New, use througout.

2004-10-25  Paolo Carlini  <pcarlini@suse.de>

* include/bits/basic_string.h (_Rep::_M_is_safe, _M_check_length,
_M_move, _M_copy, _M_assign): New, use througout.
(operator+=(_CharT)): Define in terms of push_back.
(append(const basic_string&)): Define here, inline, and simplify,
don't use the full _M_replace_safe.
(append(size_type, _CharT)): Likewise, don't use _M_replace_aux.
(push_back): Likewise.
(assign(const basic_string&)): Define here, inline.
* include/bits/basic_string.tcc (append(const _CharT* s, size_type):
Fix: when s points inside the _Rep, upon reallocation (reserve) we
were copying from deallocated memory.
(append(const basic_string&, size_type, size_type)): Simplify,
don't use _M_replace_safe.
(replace(size_type, size_type, const _CharT*, size_type)): Slightly
tweak.
(reserve): Likewise.
* testsuite/21_strings/basic_string/append/char/2.cc: New.
* testsuite/21_strings/basic_string/append/char/3.cc: Likewise.
* testsuite/21_strings/basic_string/append/wchar_t/2.cc: Likewise.
* testsuite/21_strings/basic_string/append/wchar_t/3.cc: Likewise.

* testsuite/21_strings/basic_string/assign/char/3.cc: Remove junk.
* testsuite/21_strings/basic_string/assign/wchar_t/3.cc: Likewise.

From-SVN: r89526
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/basic_string.h
libstdc++-v3/include/bits/basic_string.tcc
libstdc++-v3/testsuite/21_strings/basic_string/append/char/1.cc
libstdc++-v3/testsuite/21_strings/basic_string/append/char/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/basic_string/append/char/3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/basic_string/append/wchar_t/1.cc
libstdc++-v3/testsuite/21_strings/basic_string/append/wchar_t/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/basic_string/append/wchar_t/3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/basic_string/assign/char/3.cc
libstdc++-v3/testsuite/21_strings/basic_string/assign/wchar_t/3.cc