aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2004-01-27 10:46:36 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2004-01-27 10:46:36 +0000
commita3af79eab6131f17e2be677c12e720c4746cfec1 (patch)
tree743507653107d87f94c2292b40cad9814773c85b /libstdc++-v3
parent4137ba7ab7a1d7be1a3452dcf7f5a3818dcb4c6b (diff)
downloadgcc-a3af79eab6131f17e2be677c12e720c4746cfec1.zip
gcc-a3af79eab6131f17e2be677c12e720c4746cfec1.tar.gz
gcc-a3af79eab6131f17e2be677c12e720c4746cfec1.tar.bz2
basic_string.tcc (basic_string(const basic_string&, size_type, size_type), [...]): Avoid unnecessarily constructing iterators.
2004-01-27 Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.tcc (basic_string(const basic_string&, size_type, size_type), basic_string(const basic_string&, size_type, size_type, const _Alloc&)): Avoid unnecessarily constructing iterators. From-SVN: r76696
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog7
-rw-r--r--libstdc++-v3/include/bits/basic_string.tcc8
2 files changed, 11 insertions, 4 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 91b866e..b3a706f 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,10 @@
+2004-01-27 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/basic_string.tcc
+ (basic_string(const basic_string&, size_type, size_type),
+ basic_string(const basic_string&, size_type, size_type,
+ const _Alloc&)): Avoid unnecessarily constructing iterators.
+
2004-01-26 Paolo Carlini <pcarlini@suse.de>
* config/locale/generic/c_locale.cc: Fix throw messages
diff --git a/libstdc++-v3/include/bits/basic_string.tcc b/libstdc++-v3/include/bits/basic_string.tcc
index 1e9d33e..733a11d 100644
--- a/libstdc++-v3/include/bits/basic_string.tcc
+++ b/libstdc++-v3/include/bits/basic_string.tcc
@@ -207,10 +207,10 @@ namespace std
template<typename _CharT, typename _Traits, typename _Alloc>
basic_string<_CharT, _Traits, _Alloc>::
basic_string(const basic_string& __str, size_type __pos, size_type __n)
- : _M_dataplus(_S_construct(__str._M_ibegin()
+ : _M_dataplus(_S_construct(__str._M_data()
+ __str._M_check(__pos,
"basic_string::basic_string"),
- __str._M_ibegin() + __pos
+ __str._M_data() + __pos
+ __str._M_limit(__pos, __n),
_Alloc()), _Alloc())
{ }
@@ -219,10 +219,10 @@ namespace std
basic_string<_CharT, _Traits, _Alloc>::
basic_string(const basic_string& __str, size_type __pos,
size_type __n, const _Alloc& __a)
- : _M_dataplus(_S_construct(__str._M_ibegin()
+ : _M_dataplus(_S_construct(__str._M_data()
+ __str._M_check(__pos,
"basic_string::basic_string"),
- __str._M_ibegin() + __pos
+ __str._M_data() + __pos
+ __str._M_limit(__pos, __n), __a), __a)
{ }