From 0a7460199f1c204bf6b165fc8d29bfc5a5c8b0bf Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Wed, 21 Apr 2004 09:23:36 +0000 Subject: [PATCH] basic_string.tcc (_M_mutate): Don't compute __src unnecessarily. 2004-04-21 Paolo Carlini Andrew Pinski * include/bits/basic_string.tcc (_M_mutate): Don't compute __src unnecessarily. Co-Authored-By: Andrew Pinski From-SVN: r80952 --- libstdc++-v3/ChangeLog | 6 ++++++ libstdc++-v3/include/bits/basic_string.tcc | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 446ae404c43..5f760d2b5a3 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2004-04-21 Paolo Carlini + Andrew Pinski + + * include/bits/basic_string.tcc (_M_mutate): Don't compute + __src unnecessarily. + 2004-04-19 Benjamin Kosnik * testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc: diff --git a/libstdc++-v3/include/bits/basic_string.tcc b/libstdc++-v3/include/bits/basic_string.tcc index 4fa5e87fe22..8f60abef526 100644 --- a/libstdc++-v3/include/bits/basic_string.tcc +++ b/libstdc++-v3/include/bits/basic_string.tcc @@ -383,7 +383,6 @@ namespace std { const size_type __old_size = this->size(); const size_type __new_size = __old_size + __len2 - __len1; - const _CharT* __src = _M_data() + __pos + __len1; const size_type __how_much = __old_size - __pos - __len1; if (_M_rep() == &_S_empty_rep() @@ -397,7 +396,7 @@ namespace std traits_type::copy(__r->_M_refdata(), _M_data(), __pos); if (__how_much) traits_type::copy(__r->_M_refdata() + __pos + __len2, - __src, __how_much); + _M_data() + __pos + __len1, __how_much); _M_rep()->_M_dispose(__a); _M_data(__r->_M_refdata()); @@ -405,7 +404,8 @@ namespace std else if (__how_much && __len1 != __len2) { // Work in-place - traits_type::move(_M_data() + __pos + __len2, __src, __how_much); + traits_type::move(_M_data() + __pos + __len2, + _M_data() + __pos + __len1, __how_much); } _M_rep()->_M_set_sharable(); _M_rep()->_M_length = __new_size; -- 2.30.2