mirror of
https://gcc.gnu.org/git/gcc.git
synced 2025-01-20 19:33:58 +08:00
streambuf.tcc (__copy_streambufs): Don't use in_avail(), simplify.
2003-04-26 Paolo Carlini <pcarlini@unitus.it> * include/bits/streambuf.tcc (__copy_streambufs): Don't use in_avail(), simplify. 2003-04-26 Paolo Carlini <pcarlini@unitus.it> * include/std/std_sstream.h (setbuf): don't set _M_buf_size, in basic_stringbuf it's unused. * include/std/std_sstream.h (underflow): consistently use _M_in_cur, not gptr(). From-SVN: r66100
This commit is contained in:
parent
04ab0b3e09
commit
ac5b7972ab
@ -1,3 +1,16 @@
|
||||
2003-04-26 Paolo Carlini <pcarlini@unitus.it>
|
||||
|
||||
* include/bits/streambuf.tcc (__copy_streambufs): Don't
|
||||
use in_avail(), simplify.
|
||||
|
||||
2003-04-26 Paolo Carlini <pcarlini@unitus.it>
|
||||
|
||||
* include/std/std_sstream.h (setbuf): don't set _M_buf_size,
|
||||
in basic_stringbuf it's unused.
|
||||
|
||||
* include/std/std_sstream.h (underflow): consistently use
|
||||
_M_in_cur, not gptr().
|
||||
|
||||
2003-04-25 Ranjit Mathew <rmathew@hotmail.com>
|
||||
Phil Edwards <pme@gcc.gnu.org>
|
||||
|
||||
|
@ -188,30 +188,29 @@ namespace std
|
||||
typedef typename _Traits::off_type off_type;
|
||||
|
||||
streamsize __ret = 0;
|
||||
streamsize __in_avail = __sbin->in_avail();
|
||||
streamsize __xtrct;
|
||||
const off_type __buf_size =
|
||||
__sbin->_M_buf_size > 0 ? __sbin->_M_buf_size : 1;
|
||||
|
||||
try
|
||||
{
|
||||
while (__in_avail != -1)
|
||||
for (;;)
|
||||
{
|
||||
if (__in_avail != 0 && __sbin->_M_in_cur
|
||||
&& __sbin->_M_in_cur + __in_avail <= __sbin->_M_in_end)
|
||||
streamsize __xtrct;
|
||||
const off_type __avail = __sbin->_M_in_end
|
||||
- __sbin->_M_in_cur;
|
||||
if (__avail)
|
||||
{
|
||||
__xtrct = __sbout->sputn(__sbin->_M_in_cur, __in_avail);
|
||||
__xtrct = __sbout->sputn(__sbin->_M_in_cur, __avail);
|
||||
__ret += __xtrct;
|
||||
__sbin->_M_in_cur_move(__xtrct);
|
||||
if (__xtrct != __in_avail)
|
||||
if (__xtrct != __avail)
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
streamsize __charsread;
|
||||
const streamsize __size =
|
||||
std::min(__buf_size, off_type(__sbout->_M_out_end -
|
||||
__sbout->_M_out_cur));
|
||||
const off_type __size = std::min(__buf_size,
|
||||
off_type(__sbout->_M_out_end
|
||||
- __sbout->_M_out_cur));
|
||||
if (__size > 1)
|
||||
{
|
||||
_CharT* __buf =
|
||||
@ -242,7 +241,6 @@ namespace std
|
||||
}
|
||||
if (_Traits::eq_int_type(__sbin->sgetc(), _Traits::eof()))
|
||||
break;
|
||||
__in_avail = __sbin->in_avail();
|
||||
}
|
||||
}
|
||||
catch(exception& __fail)
|
||||
|
@ -191,7 +191,7 @@ namespace std
|
||||
underflow()
|
||||
{
|
||||
if (this->_M_in_cur < this->_M_in_end)
|
||||
return traits_type::to_int_type(*gptr());
|
||||
return traits_type::to_int_type(*this->_M_in_cur);
|
||||
else
|
||||
return traits_type::eof();
|
||||
}
|
||||
@ -230,7 +230,6 @@ namespace std
|
||||
|
||||
// Step 2: Use the external array.
|
||||
this->_M_buf = __s;
|
||||
this->_M_buf_size = __n;
|
||||
_M_really_sync(__s, 0, 0);
|
||||
}
|
||||
return this;
|
||||
|
Loading…
Reference in New Issue
Block a user