From 397751aef082a19ac18a698f3e210b3efebaf97c Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Thu, 1 May 2003 18:45:50 +0200 Subject: streambuf.tcc (basic_streambuf::xsgetn): Const-ify some variables. 2003-05-01 Paolo Carlini * 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 * 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 | 15 +++++++++++++++ libstdc++-v3/include/bits/streambuf.tcc | 25 ++++++++++++------------- libstdc++-v3/include/std/std_sstream.h | 14 ++++++-------- 3 files changed, 33 insertions(+), 21 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 70fafd0..92b8a33 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,20 @@ 2003-05-01 Paolo Carlini + * 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 + + * 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 + * include/ext/stdio_filebuf.h (stdio_filebuf(int, std::ios_base::openmode, bool, size_t), stdio_filebuf(std::__c_file*, std::ios_base::openmode, size_t)): diff --git a/libstdc++-v3/include/bits/streambuf.tcc b/libstdc++-v3/include/bits/streambuf.tcc index 1d1843f..e4aab0c 100644 --- a/libstdc++-v3/include/bits/streambuf.tcc +++ b/libstdc++-v3/include/bits/streambuf.tcc @@ -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 = diff --git a/libstdc++-v3/include/std/std_sstream.h b/libstdc++-v3/include/std/std_sstream.h index 10fe057..dcfdea6 100644 --- a/libstdc++-v3/include/std/std_sstream.h +++ b/libstdc++-v3/include/std/std_sstream.h @@ -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; } -- cgit v1.1