OSDN Git Service

2003-05-01 Paolo Carlini <pcarlini@unitus.it>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 1 May 2003 23:20:33 +0000 (23:20 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 1 May 2003 23:20:33 +0000 (23:20 +0000)
* 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

libstdc++-v3/ChangeLog
libstdc++-v3/include/std/std_sstream.h

index fe53992..cd55a6b 100644 (file)
@@ -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.
 
index dcfdea6..1d9a549 100644 (file)
@@ -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);
          }