From a6cb7068eb8b15fc807aeb5051ede637e92d033b Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Tue, 26 Oct 2004 21:16:58 +0000 Subject: [PATCH] basic_string.h (erase(size_type, size_type), [...]): Call _M_mutate instead of _M_replace_safe... 2004-10-26 Paolo Carlini * include/bits/basic_string.h (erase(size_type, size_type), erase(iterator), erase(iterator, iterator)): Call _M_mutate instead of _M_replace_safe, equivalent when the fourth argument is zero and simpler. From-SVN: r89608 --- libstdc++-v3/ChangeLog | 7 +++++++ libstdc++-v3/include/bits/basic_string.h | 11 +++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 6404896d390..94a2adb2ada 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2004-10-26 Paolo Carlini + + * include/bits/basic_string.h (erase(size_type, size_type), + erase(iterator), erase(iterator, iterator)): Call _M_mutate + instead of _M_replace_safe, equivalent when the fourth argument + is zero and simpler. + 2004-10-26 Benjamin Kosnik * include/ext/array_allocator.h (array::allocate): Check for valid diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h index 817123365cc..34c6fab94a5 100644 --- a/libstdc++-v3/include/bits/basic_string.h +++ b/libstdc++-v3/include/bits/basic_string.h @@ -1140,8 +1140,11 @@ namespace std */ basic_string& erase(size_type __pos = 0, size_type __n = npos) - { return _M_replace_safe(_M_check(__pos, "basic_string::erase"), - _M_limit(__pos, __n), NULL, size_type(0)); } + { + _M_mutate(_M_check(__pos, "basic_string::erase"), + _M_limit(__pos, __n), size_type(0)); + return *this; + } /** * @brief Remove one character. @@ -1157,7 +1160,7 @@ namespace std _GLIBCXX_DEBUG_PEDASSERT(__position >= _M_ibegin() && __position < _M_iend()); const size_type __pos = __position - _M_ibegin(); - _M_replace_safe(__pos, size_type(1), NULL, size_type(0)); + _M_mutate(__pos, size_type(1), size_type(0)); _M_rep()->_M_set_leaked(); return _M_ibegin() + __pos; } @@ -1177,7 +1180,7 @@ namespace std _GLIBCXX_DEBUG_PEDASSERT(__first >= _M_ibegin() && __first <= __last && __last <= _M_iend()); const size_type __pos = __first - _M_ibegin(); - _M_replace_safe(__pos, __last - __first, NULL, size_type(0)); + _M_mutate(__pos, __last - __first, size_type(0)); _M_rep()->_M_set_leaked(); return _M_ibegin() + __pos; } -- 2.30.2