aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2004-10-26 21:16:58 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2004-10-26 21:16:58 +0000
commita6cb7068eb8b15fc807aeb5051ede637e92d033b (patch)
tree5d4368cbfae4ab27a7e7c8c1df2a6d1e758875a8
parent663174d3f5b4114e970566789a0a5840642c9ad7 (diff)
downloadgcc-a6cb7068eb8b15fc807aeb5051ede637e92d033b.zip
gcc-a6cb7068eb8b15fc807aeb5051ede637e92d033b.tar.gz
gcc-a6cb7068eb8b15fc807aeb5051ede637e92d033b.tar.bz2
basic_string.h (erase(size_type, size_type), [...]): Call _M_mutate instead of _M_replace_safe...
2004-10-26 Paolo Carlini <pcarlini@suse.de> * 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
-rw-r--r--libstdc++-v3/ChangeLog7
-rw-r--r--libstdc++-v3/include/bits/basic_string.h11
2 files changed, 14 insertions, 4 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 6404896..94a2adb 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,10 @@
+2004-10-26 Paolo Carlini <pcarlini@suse.de>
+
+ * 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 <bkoz@redhat.com>
* 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 8171233..34c6fab 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;
}