From 9d3e38ec5905091e273f149c7b0c740ae95a3555 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Mon, 21 Apr 2003 20:11:51 +0200 Subject: [PATCH] std_streambuf.h (uflow()): It's used only by basic_stringbuf (i.e.... 2003-04-21 Paolo Carlini * 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 | 8 ++++++++ libstdc++-v3/include/std/std_streambuf.h | 14 ++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index f82d67ce1ca..5b186682826 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2003-04-21 Paolo Carlini + + * 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 * docs/html/ext/howto.html ('LWG Issues'): diff --git a/libstdc++-v3/include/std/std_streambuf.h b/libstdc++-v3/include/std/std_streambuf.h index 658b02f46cc..ded94a4e512 100644 --- a/libstdc++-v3/include/std/std_streambuf.h +++ b/libstdc++-v3/include/std/std_streambuf.h @@ -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; } -- 2.30.2