summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2003-05-01 23:20:33 +0000
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2003-05-01 23:20:33 +0000
commit2304077f8c17e76fec6e63f13f9009b95add53be (patch)
treed907659c8892ebec5c10eae41dc42c5346e76557
parent07ee77d1349eba1f887ed0aeba50a877889575ae (diff)
downloadppe42-gcc-2304077f8c17e76fec6e63f13f9009b95add53be.tar.gz
ppe42-gcc-2304077f8c17e76fec6e63f13f9009b95add53be.zip
2003-05-01 Paolo Carlini <pcarlini@unitus.it>
* include/std/std_sstream.h (str()): Revert the best of the previous 'improvement', incorrect due to the COW nature of v3 basic_string; simplify. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66357 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/include/std/std_sstream.h9
2 files changed, 8 insertions, 7 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index fe539924d25..cd55a6b5e01 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,11 @@
2003-05-01 Paolo Carlini <pcarlini@unitus.it>
+ * include/std/std_sstream.h (str()): Revert the best of the
+ previous 'improvement', incorrect due to the COW nature of
+ v3 basic_string; simplify.
+
+2003-05-01 Paolo Carlini <pcarlini@unitus.it>
+
* include/bits/streambuf.tcc (__copy_streambufs): Adjust the
type of __avail to ptrdiff_t to avoid signed-unsigned warning.
diff --git a/libstdc++-v3/include/std/std_sstream.h b/libstdc++-v3/include/std/std_sstream.h
index dcfdea64168..1d9a54970c5 100644
--- a/libstdc++-v3/include/std/std_sstream.h
+++ b/libstdc++-v3/include/std/std_sstream.h
@@ -136,14 +136,9 @@ namespace std
__string_type __ret = _M_string;
if (this->_M_mode & ios_base::out)
{
- // This is the deal: _M_string.size() is a value that
- // represents the size of the initial string used to
- // created the buffer, and may not be the correct size of
- // the current stringbuf internal buffer.
- const __size_type __len = _M_string.size();
const __size_type __nlen = this->_M_out_lim
- - this->_M_out_beg;
- if (__nlen > __len)
+ - this->_M_out_beg;
+ if (__nlen)
__ret = __string_type(this->_M_out_beg,
this->_M_out_beg + __nlen);
}
OpenPOWER on IntegriCloud