aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2004-02-08 17:11:07 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2004-02-08 17:11:07 +0000
commitfd95f498f35fd109a26b7cf6a8196daf810682c9 (patch)
treeacbefd13be11847a32f4dfc0bdff61346b8fdc98
parentc79751b99d7abc4cb48181fb81155e3022cba517 (diff)
downloadgcc-fd95f498f35fd109a26b7cf6a8196daf810682c9.zip
gcc-fd95f498f35fd109a26b7cf6a8196daf810682c9.tar.gz
gcc-fd95f498f35fd109a26b7cf6a8196daf810682c9.tar.bz2
basic_string.tcc (assign(const _CharT*, size_type)): When working in place remember to set the state to sharable (otherwise...
2004-02-08 Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.tcc (assign(const _CharT*, size_type)): When working in place remember to set the state to sharable (otherwise, _M_mutate does it). From-SVN: r77487
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/include/bits/basic_string.tcc1
2 files changed, 7 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 97126b3..a8a0edc 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2004-02-08 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/basic_string.tcc (assign(const _CharT*, size_type)):
+ When working in place remember to set the state to sharable
+ (otherwise, _M_mutate does it).
+
2004-02-08 Bernardo Innocenti <bernie@develer.com>
* include/bits/allocator.h, include/bits/basic_ios.h,
diff --git a/libstdc++-v3/include/bits/basic_string.tcc b/libstdc++-v3/include/bits/basic_string.tcc
index 729b86c..4a79333 100644
--- a/libstdc++-v3/include/bits/basic_string.tcc
+++ b/libstdc++-v3/include/bits/basic_string.tcc
@@ -273,6 +273,7 @@ namespace std
traits_type::copy(_M_data(), __s, __n);
else if (__pos)
traits_type::move(_M_data(), __s, __n);
+ _M_rep()->_M_set_sharable();
_M_rep()->_M_length = __n;
_M_data()[__n] = _Rep::_S_terminal; // grr.
return *this;