This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
[Patch] Consistently use _M_in_beg instead of eback() and so on...
- From: Paolo Carlini <pcarlini at unitus dot it>
- To: libstdc++ at gcc dot gnu dot org
- Cc: bkoz <bkoz at redhat dot com>
- Date: Mon, 21 Apr 2003 22:47:14 +0200
- Subject: [Patch] Consistently use _M_in_beg instead of eback() and so on...
Ok,
just finished testing the below. Ok?
Paolo.
////////
2003-04-21 Paolo Carlini <pcarlini at unitus dot it>
Consistently use _M_in_beg instead of eback(), _M_in_cur
instead of gptr(), and so on.
* include/bits/fstream.tcc (pbackfail, imbue): Here.
* include/bits/sstream.tcc (pbackfail, seekoff, seekpos): Ditto.
* include/bits/streambuf.tcc (sbumpc, sputbackc,
__copy_streambufs): Ditto.
* include/std/std_streambuf.h (sgetc): Ditto.
diff -urN libstdc++-v3-orig/include/bits/fstream.tcc libstdc++-v3/include/bits/fstream.tcc
--- libstdc++-v3-orig/include/bits/fstream.tcc 2003-04-18 15:55:22.000000000 +0200
+++ libstdc++-v3/include/bits/fstream.tcc 2003-04-21 22:08:14.000000000 +0200
@@ -189,7 +189,7 @@
if (__testpb)
{
const bool __testout = this->_M_mode & ios_base::out;
- const bool __testeq = traits_type::eq(__c, this->gptr()[-1]);
+ const bool __testeq = traits_type::eq(__c, this->_M_in_cur[-1]);
// Try to put back __c into input sequence in one of three ways.
// Order these tests done in is unspecified by the standard.
@@ -520,7 +520,8 @@
basic_filebuf<_CharT, _Traits>::
imbue(const locale& __loc)
{
- const bool __testbeg = gptr() == eback() && pptr() == pbase();
+ const bool __testbeg = this->_M_in_cur == this->_M_in_beg
+ && this->_M_out_cur == this->_M_out_beg;
if (__testbeg && this->_M_buf_locale != __loc)
this->_M_buf_locale = __loc;
diff -urN libstdc++-v3-orig/include/bits/sstream.tcc libstdc++-v3/include/bits/sstream.tcc
--- libstdc++-v3-orig/include/bits/sstream.tcc 2003-04-21 20:38:27.000000000 +0200
+++ libstdc++-v3/include/bits/sstream.tcc 2003-04-21 22:11:06.000000000 +0200
@@ -55,7 +55,8 @@
// Order these tests done in is unspecified by the standard.
if (__testpos)
{
- if (traits_type::eq(traits_type::to_char_type(__c), this->gptr()[-1])
+ if (traits_type::eq(traits_type::to_char_type(__c),
+ this->_M_in_cur[-1])
&& !__testeof)
{
--this->_M_in_cur;
@@ -139,14 +140,14 @@
if (__testin || __testboth)
{
- __curi = this->gptr();
- __endi = this->egptr();
+ __curi = this->_M_in_cur;
+ __endi = this->_M_in_end;
}
if (__testout || __testboth)
{
- __curo = this->pptr();
+ __curo = this->_M_out_cur;
// Due to the resolution of DR169, ios_base::end
- // is this->_M_out_lim, not epptr().
+ // is this->_M_out_lim, not _M_out_end.
__endo = this->_M_out_lim;
}
@@ -199,15 +200,15 @@
bool __testposo = false;
if (__testin)
{
- __beg = this->eback();
- __end = this->egptr();
+ __beg = this->_M_in_beg;
+ __end = this->_M_in_end;
if (0 <= __pos && __pos <= __end - __beg)
__testposi = true;
}
if (__testout)
{
- __beg = this->pbase();
- __end = this->epptr();
+ __beg = this->_M_out_beg;
+ __end = this->_M_out_end;
if (0 <= __pos && __pos <= __end - __beg)
__testposo = true;
}
diff -urN libstdc++-v3-orig/include/bits/streambuf.tcc libstdc++-v3/include/bits/streambuf.tcc
--- libstdc++-v3-orig/include/bits/streambuf.tcc 2003-04-18 15:55:22.000000000 +0200
+++ libstdc++-v3/include/bits/streambuf.tcc 2003-04-21 22:14:39.000000000 +0200
@@ -51,7 +51,7 @@
int_type __ret;
if (_M_in_cur < _M_in_end)
{
- char_type __c = *(this->gptr());
+ char_type __c = *this->_M_in_cur;
_M_in_cur_move(1);
__ret = traits_type::to_int_type(__c);
}
@@ -67,12 +67,12 @@
{
int_type __ret;
const bool __testpos = _M_in_beg < _M_in_cur;
- if (!__testpos || !traits_type::eq(__c, this->gptr()[-1]))
+ if (!__testpos || !traits_type::eq(__c, this->_M_in_cur[-1]))
__ret = this->pbackfail(traits_type::to_int_type(__c));
else
{
_M_in_cur_move(-1);
- __ret = traits_type::to_int_type(*this->gptr());
+ __ret = traits_type::to_int_type(*this->_M_in_cur);
}
return __ret;
}
@@ -201,10 +201,10 @@
{
while (__in_avail != -1)
{
- if (__in_avail != 0 && __sbin->gptr()
- && __sbin->gptr() + __in_avail <= __sbin->egptr())
+ if (__in_avail != 0 && __sbin->_M_in_cur
+ && __sbin->_M_in_cur + __in_avail <= __sbin->_M_in_end)
{
- __xtrct = __sbout->sputn(__sbin->gptr(), __in_avail);
+ __xtrct = __sbout->sputn(__sbin->_M_in_cur, __in_avail);
__ret += __xtrct;
__sbin->_M_in_cur_move(__xtrct);
if (__xtrct != __in_avail)
diff -urN libstdc++-v3-orig/include/std/std_streambuf.h libstdc++-v3/include/std/std_streambuf.h
--- libstdc++-v3-orig/include/std/std_streambuf.h 2003-04-21 19:36:54.000000000 +0200
+++ libstdc++-v3/include/std/std_streambuf.h 2003-04-21 22:26:47.000000000 +0200
@@ -453,7 +453,7 @@
{
int_type __ret;
if (_M_in_cur < _M_in_end)
- __ret = traits_type::to_int_type(*(this->gptr()));
+ __ret = traits_type::to_int_type(*this->_M_in_cur);
else
__ret = this->underflow();
return __ret;