streambuf.tcc (basic_streambuf::xsgetn): Const-ify some variables.
authorPaolo Carlini <pcarlini@unitus.it>
Thu, 1 May 2003 16:45:50 +0000 (18:45 +0200)
committerPaolo Carlini <paolo@gcc.gnu.org>
Thu, 1 May 2003 16:45:50 +0000 (16:45 +0000)
2003-05-01  Paolo Carlini  <pcarlini@unitus.it>

* include/bits/streambuf.tcc (basic_streambuf::xsgetn):
Const-ify some variables.
(basic_streambuf::xsputn): Likewise; change the type of some
variables to size_t.
(__copy_streambufs): Change some variables to size_t.

2003-05-01  Paolo Carlini  <pcarlini@unitus.it>

* include/std/std_sstream.h (str()): Avoid constructing
a basic_string temporary not only when it would turn out
to be zero-sized but also when identical to the current
_M_string buffer.

From-SVN: r66334

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/streambuf.tcc
libstdc++-v3/include/std/std_sstream.h

index 70fafd0f7598b661a8c9e0d5ff6fb3f57543f3d5..92b8a33c045b710aefcb9eb60880ecdff147966c 100644 (file)
@@ -1,3 +1,18 @@
+2003-05-01  Paolo Carlini  <pcarlini@unitus.it>
+
+       * include/bits/streambuf.tcc (basic_streambuf::xsgetn):
+       Const-ify some variables.
+       (basic_streambuf::xsputn): Likewise; change the type of some
+       variables to size_t.
+       (__copy_streambufs): Change some variables to size_t.
+
+2003-05-01  Paolo Carlini  <pcarlini@unitus.it>
+
+       * include/std/std_sstream.h (str()): Avoid constructing
+       a basic_string temporary not only when it would turn out
+       to be zero-sized but also when identical to the current
+       _M_string buffer.
+
 2003-05-01  Paolo Carlini  <pcarlini@unitus.it>
 
        * include/ext/stdio_filebuf.h
index 1d1843f5eef4daf3b634075cd3a5634c3ecf999f..e4aab0ccc3141846ea10576a7fc4806ad544c7ba 100644 (file)
@@ -114,11 +114,11 @@ namespace std
       streamsize __ret = 0;
       while (__ret < __n)
        {
-         size_t __buf_len = _M_in_end - _M_in_cur;
+         const size_t __buf_len = _M_in_end - _M_in_cur;
          if (__buf_len > 0)
            {
-             size_t __remaining = __n - __ret;
-             size_t __len = std::min(__buf_len, __remaining);
+             const size_t __remaining = __n - __ret;
+             const size_t __len = std::min(__buf_len, __remaining);
              traits_type::copy(__s, _M_in_cur, __len);
              __ret += __len;
              __s += __len;
@@ -127,7 +127,7 @@ namespace std
          
          if (__ret < __n)
            {
-             int_type __c = this->uflow();  
+             const int_type __c = this->uflow();  
              if (!traits_type::eq_int_type(__c, traits_type::eof()))
                {
                  traits_type::assign(*__s++, traits_type::to_char_type(__c));
@@ -148,11 +148,11 @@ namespace std
       streamsize __ret = 0;
       while (__ret < __n)
        {
-         off_type __buf_len = _M_out_end - _M_out_cur;
+         const size_t __buf_len = _M_out_end - _M_out_cur;
          if (__buf_len > 0)
            {
-             off_type __remaining = __n - __ret;
-             off_type __len = std::min(__buf_len, __remaining);
+             const size_t __remaining = __n - __ret;
+             const size_t __len = std::min(__buf_len, __remaining);
              traits_type::copy(_M_out_cur, __s, __len);
              __ret += __len;
              __s += __len;
@@ -161,7 +161,7 @@ namespace std
 
          if (__ret < __n)
            {
-             int_type __c = this->overflow(traits_type::to_int_type(*__s));
+             const int_type __c = this->overflow(traits_type::to_int_type(*__s));
              if (!traits_type::eq_int_type(__c, traits_type::eof()))
                {
                  ++__ret;
@@ -185,7 +185,6 @@ namespace std
                      basic_streambuf<_CharT, _Traits>* __sbout) 
   {
       typedef typename _Traits::int_type       int_type;
-      typedef typename _Traits::off_type       off_type;
 
       streamsize __ret = 0;
       try 
@@ -193,8 +192,8 @@ namespace std
          for (;;)
            {
              streamsize __xtrct;
-             const off_type __avail = __sbin->_M_in_end
-                                      - __sbin->_M_in_cur;
+             const size_t __avail = __sbin->_M_in_end
+                                    - __sbin->_M_in_cur;
              if (__avail)
                {
                  __xtrct = __sbout->sputn(__sbin->_M_in_cur, __avail);
@@ -206,8 +205,8 @@ namespace std
              else 
                {
                  streamsize __charsread;
-                 const off_type __size = __sbout->_M_out_end
-                                         - __sbout->_M_out_cur;
+                 const size_t __size = __sbout->_M_out_end
+                                       - __sbout->_M_out_cur;
                  if (__size)
                    {
                      _CharT* __buf =
index 10fe05702e7cdf8c957054190dceaab89f057b53..dcfdea641682433789dd0d267f471de259a9b0d1 100644 (file)
@@ -140,14 +140,12 @@ namespace std
            // 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.
-           __size_type __len = _M_string.size();
-           __size_type __nlen = this->_M_out_lim - this->_M_out_beg;
-           if (__nlen)
-             {
-               __len = std::max(__nlen, __len);
-               __ret = __string_type(this->_M_out_beg, 
-                                     this->_M_out_beg + __len);
-             }
+           const __size_type __len = _M_string.size();
+           const __size_type __nlen = this->_M_out_lim
+                                      - this->_M_out_beg;
+           if (__nlen > __len)
+             __ret = __string_type(this->_M_out_beg, 
+                                   this->_M_out_beg + __nlen);
          }
        return __ret;
       }