This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]