mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-11 07:04:33 +08:00
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
This commit is contained in:
parent
663174d3f5
commit
a6cb7068eb
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user