diff options
| author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-05-01 23:20:33 +0000 |
|---|---|---|
| committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-05-01 23:20:33 +0000 |
| commit | 2304077f8c17e76fec6e63f13f9009b95add53be (patch) | |
| tree | d907659c8892ebec5c10eae41dc42c5346e76557 | |
| parent | 07ee77d1349eba1f887ed0aeba50a877889575ae (diff) | |
| download | ppe42-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/ChangeLog | 6 | ||||
| -rw-r--r-- | libstdc++-v3/include/std/std_sstream.h | 9 |
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); } |

