std_streambuf.h (uflow()): It's used only by basic_stringbuf (i.e....
authorPaolo Carlini <pcarlini@unitus.it>
Mon, 21 Apr 2003 18:11:51 +0000 (20:11 +0200)
committerPaolo Carlini <paolo@gcc.gnu.org>
Mon, 21 Apr 2003 18:11:51 +0000 (18:11 +0000)
2003-04-21  Paolo Carlini  <pcarlini@unitus.it>

* include/std/std_streambuf.h (uflow()): It's used only by
basic_stringbuf (i.e., basic_filebuf provide its own uflow()),
therefore do not consider the _M_buf_unified == true case.

* include/std/std_streambuf.h (sgetc()): Restore __ret variable.

From-SVN: r65891

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

index f82d67ce1ca94ea479c15ea374a8092f5025f8b8..5b186682826b425760e3b5089bedfdef3780b397 100644 (file)
@@ -1,3 +1,11 @@
+2003-04-21  Paolo Carlini  <pcarlini@unitus.it>
+
+       * include/std/std_streambuf.h (uflow()): It's used only by
+       basic_stringbuf (i.e., basic_filebuf provide its own uflow()),
+       therefore do not consider the _M_buf_unified == true case.
+
+       * include/std/std_streambuf.h (sgetc()): Restore __ret variable.
+
 2003-04-20  Paolo Carlini  <pcarlini@unitus.it>
 
        * docs/html/ext/howto.html ('LWG Issues'):
index 658b02f46ccc5df661e9efae84ade6f5d0fa7147..ded94a4e5120f100d5d4b06117c1815694a867b3 100644 (file)
@@ -234,8 +234,7 @@ namespace std
        *  @if maint
        *  Necessary bits for putback buffer management. Only used in
        *  the basic_filebuf class, as necessary for the standard
-       *  requirements. The only basic_streambuf member function that
-       *  needs access to these data members is in_avail...
+       *  requirements.
        *  
        *  @note pbacks of over one character are not currently supported.
        *  @endif
@@ -452,10 +451,12 @@ namespace std
       int_type 
       sgetc()
       {
+       int_type __ret;
        if (_M_in_cur < _M_in_end)
-         return traits_type::to_int_type(*(this->gptr()));
+         __ret = traits_type::to_int_type(*(this->gptr()));
        else 
-         return this->underflow();
+         __ret = this->underflow();
+       return __ret;
       }
 
       /**
@@ -787,13 +788,10 @@ namespace std
        int_type __ret = traits_type::eof();
        const bool __testeof =
          traits_type::eq_int_type(this->underflow(), __ret);
-       const bool __testpending = _M_in_cur < _M_in_end;
-       if (!__testeof && __testpending)
+       if (!__testeof && _M_in_cur < _M_in_end)
          {
            __ret = traits_type::to_int_type(*_M_in_cur);
            ++_M_in_cur;
-           if (_M_buf_unified && _M_mode & ios_base::out)
-             ++_M_out_cur;
          }
        return __ret;    
       }