mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-12 06:04:28 +08:00
PR libstdc++/15002 (partial)
2004-04-19 Paolo Carlini <pcarlini@suse.de> PR libstdc++/15002 (partial) * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe): Special case __n2 == 1, not calling traits_type::assign/copy. From-SVN: r80847
This commit is contained in:
parent
d6ce65ee19
commit
41b8e86c9a
@ -1,3 +1,9 @@
|
||||
2004-04-19 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
PR libstdc++/15002 (partial)
|
||||
* include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
|
||||
Special case __n2 == 1, not calling traits_type::assign/copy.
|
||||
|
||||
2004-04-17 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
* include/bits/stl_bvector.h: Use _M_impl._M_start.
|
||||
|
@ -1342,7 +1342,9 @@ namespace std
|
||||
if (this->max_size() - (this->size() - __n1) < __n2)
|
||||
__throw_length_error(__N("basic_string::_M_replace_aux"));
|
||||
_M_mutate(__pos1, __n1, __n2);
|
||||
if (__n2)
|
||||
if (__n2 == 1)
|
||||
_M_data()[__pos1] = __c;
|
||||
else if (__n2)
|
||||
traits_type::assign(_M_data() + __pos1, __n2, __c);
|
||||
return *this;
|
||||
}
|
||||
@ -1352,7 +1354,9 @@ namespace std
|
||||
size_type __n2)
|
||||
{
|
||||
_M_mutate(__pos1, __n1, __n2);
|
||||
if (__n2)
|
||||
if (__n2 == 1)
|
||||
_M_data()[__pos1] = *__s;
|
||||
else if (__n2)
|
||||
traits_type::copy(_M_data() + __pos1, __s, __n2);
|
||||
return *this;
|
||||
}
|
||||
@ -1960,7 +1964,7 @@ namespace std
|
||||
* @param rhs Last string.
|
||||
* @return New string with value of @a lhs followed by @a rhs.
|
||||
*/
|
||||
template<typename _CharT, typename _Traits, typename _Alloc>
|
||||
template<typename _CharT, typename _Traits, typename _Alloc>
|
||||
basic_string<_CharT, _Traits, _Alloc>
|
||||
operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
|
||||
const basic_string<_CharT, _Traits, _Alloc>& __rhs)
|
||||
|
Loading…
Reference in New Issue
Block a user