std_streambuf.h (_M_out_buf_size()): Remove.
2003-03-31 Paolo Carlini <pcarlini@unitus.it> * include/std/std_streambuf.h (_M_out_buf_size()): Remove. * include/bits/fstream.tcc (_M_allocate_internal_buffer): Don't set _M_out_end. (basic_filebuf::overflow): Replace _M_out_buf_size() with this->_M_out_cur && this->_M_out_cur < this->_M_out_end. * include/bits/sstream.tcc (basic_stringbuf::overflow): Replace _M_out_buf_size() with this->_M_out_cur < this->_M_out_end; * include/bits/streambuf.tcc (basic_streambuf::sputc): Replace _M_out_buf_size() with _M_out_cur && _M_out_cur < _M_out_end. (basic_streambuf::xsputn): Replace _M_out_buf_size() with _M_out_end - _M_out_cur. (__copy_streambufs): Likewise. * include/std/std_fstream.h (_M_set_determinate): Set _M_out_end here. From-SVN: r65093
This commit is contained in:
parent
c8ae788f59
commit
eb98bd16ce
|
@ -1,3 +1,20 @@
|
||||||
|
2003-03-31 Paolo Carlini <pcarlini@unitus.it>
|
||||||
|
|
||||||
|
* include/std/std_streambuf.h (_M_out_buf_size()): Remove.
|
||||||
|
* include/bits/fstream.tcc (_M_allocate_internal_buffer):
|
||||||
|
Don't set _M_out_end.
|
||||||
|
(basic_filebuf::overflow): Replace _M_out_buf_size() with
|
||||||
|
this->_M_out_cur && this->_M_out_cur < this->_M_out_end.
|
||||||
|
* include/bits/sstream.tcc (basic_stringbuf::overflow):
|
||||||
|
Replace _M_out_buf_size() with this->_M_out_cur < this->_M_out_end;
|
||||||
|
* include/bits/streambuf.tcc (basic_streambuf::sputc):
|
||||||
|
Replace _M_out_buf_size() with _M_out_cur && _M_out_cur < _M_out_end.
|
||||||
|
(basic_streambuf::xsputn): Replace _M_out_buf_size() with
|
||||||
|
_M_out_end - _M_out_cur.
|
||||||
|
(__copy_streambufs): Likewise.
|
||||||
|
* include/std/std_fstream.h (_M_set_determinate): Set
|
||||||
|
_M_out_end here.
|
||||||
|
|
||||||
2003-03-30 Paolo Carlini <pcarlini@unitus.it>
|
2003-03-30 Paolo Carlini <pcarlini@unitus.it>
|
||||||
|
|
||||||
* include/bits/fstream.tcc (basic_filebuf::showmanyc,
|
* include/bits/fstream.tcc (basic_filebuf::showmanyc,
|
||||||
|
|
|
@ -48,10 +48,8 @@ namespace std
|
||||||
{
|
{
|
||||||
this->_M_buf_size = this->_M_buf_size_opt;
|
this->_M_buf_size = this->_M_buf_size_opt;
|
||||||
|
|
||||||
// Allocate internal buffer...
|
// Allocate internal buffer.
|
||||||
this->_M_buf = new char_type[this->_M_buf_size];
|
this->_M_buf = new char_type[this->_M_buf_size];
|
||||||
// ... and consistently set the end of buffer pointer.
|
|
||||||
this->_M_out_end = this->_M_buf + this->_M_buf_size;
|
|
||||||
_M_buf_allocated = true;
|
_M_buf_allocated = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -255,7 +253,8 @@ namespace std
|
||||||
overflow(int_type __c)
|
overflow(int_type __c)
|
||||||
{
|
{
|
||||||
int_type __ret = traits_type::eof();
|
int_type __ret = traits_type::eof();
|
||||||
bool __testput = _M_out_buf_size();
|
bool __testput =
|
||||||
|
this->_M_out_cur && this->_M_out_cur < this->_M_out_end;
|
||||||
bool __testout = this->_M_mode & ios_base::out;
|
bool __testout = this->_M_mode & ios_base::out;
|
||||||
|
|
||||||
if (__testout)
|
if (__testout)
|
||||||
|
|
|
@ -92,7 +92,7 @@ namespace std
|
||||||
__size_type __len =
|
__size_type __len =
|
||||||
std::max(_M_string.capacity() + 1, this->_M_buf_size_opt);
|
std::max(_M_string.capacity() + 1, this->_M_buf_size_opt);
|
||||||
|
|
||||||
bool __testwrite = _M_out_buf_size();
|
bool __testwrite = this->_M_out_cur < this->_M_out_end;
|
||||||
if (__builtin_expect(!__testwrite && __len > _M_string.max_size(), false))
|
if (__builtin_expect(!__testwrite && __len > _M_string.max_size(), false))
|
||||||
return traits_type::eof();
|
return traits_type::eof();
|
||||||
|
|
||||||
|
|
|
@ -99,7 +99,7 @@ namespace std
|
||||||
sputc(char_type __c)
|
sputc(char_type __c)
|
||||||
{
|
{
|
||||||
int_type __ret;
|
int_type __ret;
|
||||||
if (_M_out_buf_size())
|
if (_M_out_cur && _M_out_cur < _M_out_end)
|
||||||
{
|
{
|
||||||
*_M_out_cur = __c;
|
*_M_out_cur = __c;
|
||||||
_M_out_cur_move(1);
|
_M_out_cur_move(1);
|
||||||
|
@ -152,7 +152,7 @@ namespace std
|
||||||
streamsize __ret = 0;
|
streamsize __ret = 0;
|
||||||
while (__ret < __n)
|
while (__ret < __n)
|
||||||
{
|
{
|
||||||
off_type __buf_len = _M_out_buf_size();
|
off_type __buf_len = _M_out_end - _M_out_cur;
|
||||||
if (__buf_len > 0)
|
if (__buf_len > 0)
|
||||||
{
|
{
|
||||||
off_type __remaining = __n - __ret;
|
off_type __remaining = __n - __ret;
|
||||||
|
@ -189,11 +189,12 @@ namespace std
|
||||||
basic_streambuf<_CharT, _Traits>* __sbout)
|
basic_streambuf<_CharT, _Traits>* __sbout)
|
||||||
{
|
{
|
||||||
typedef typename _Traits::int_type int_type;
|
typedef typename _Traits::int_type int_type;
|
||||||
|
typedef typename _Traits::off_type off_type;
|
||||||
|
|
||||||
streamsize __ret = 0;
|
streamsize __ret = 0;
|
||||||
streamsize __bufsize = __sbin->in_avail();
|
streamsize __bufsize = __sbin->in_avail();
|
||||||
streamsize __xtrct;
|
streamsize __xtrct;
|
||||||
const typename _Traits::off_type __size_opt =
|
const off_type __size_opt =
|
||||||
__sbin->_M_buf_size_opt > 0 ? __sbin->_M_buf_size_opt : 1;
|
__sbin->_M_buf_size_opt > 0 ? __sbin->_M_buf_size_opt : 1;
|
||||||
|
|
||||||
try
|
try
|
||||||
|
@ -213,7 +214,8 @@ namespace std
|
||||||
{
|
{
|
||||||
streamsize __charsread;
|
streamsize __charsread;
|
||||||
const streamsize __size =
|
const streamsize __size =
|
||||||
std::min(__size_opt, __sbout->_M_out_buf_size());
|
std::min(__size_opt, off_type(__sbout->_M_out_end -
|
||||||
|
__sbout->_M_out_cur));
|
||||||
if (__size > 1)
|
if (__size > 1)
|
||||||
{
|
{
|
||||||
_CharT* __buf =
|
_CharT* __buf =
|
||||||
|
|
|
@ -409,13 +409,10 @@ namespace std
|
||||||
bool __testin = this->_M_mode & ios_base::in;
|
bool __testin = this->_M_mode & ios_base::in;
|
||||||
bool __testout = this->_M_mode & ios_base::out;
|
bool __testout = this->_M_mode & ios_base::out;
|
||||||
if (__testin)
|
if (__testin)
|
||||||
{
|
this->setg(this->_M_buf, this->_M_buf, this->_M_buf + __off);
|
||||||
this->_M_in_beg = this->_M_in_cur = this->_M_buf;
|
|
||||||
this->_M_in_end = this->_M_buf + __off;
|
|
||||||
}
|
|
||||||
if (__testout)
|
if (__testout)
|
||||||
{
|
{
|
||||||
this->_M_out_beg = this->_M_out_cur = this->_M_buf;
|
this->setp(this->_M_buf, this->_M_buf + this->_M_buf_size);
|
||||||
this->_M_out_lim = this->_M_buf + __off;
|
this->_M_out_lim = this->_M_buf + __off;
|
||||||
}
|
}
|
||||||
_M_filepos = this->_M_buf + __off;
|
_M_filepos = this->_M_buf + __off;
|
||||||
|
|
|
@ -333,16 +333,6 @@ namespace std
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns zero if the output buffer is full (-> overflow).
|
|
||||||
off_type
|
|
||||||
_M_out_buf_size()
|
|
||||||
{
|
|
||||||
if (_M_out_cur)
|
|
||||||
return _M_out_end - _M_out_cur;
|
|
||||||
else
|
|
||||||
return off_type(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/// Destructor deallocates no buffer space.
|
/// Destructor deallocates no buffer space.
|
||||||
virtual
|
virtual
|
||||||
|
|
Loading…
Reference in New Issue