OSDN Git Service

2003-05-22 Paolo Carlini <pcarlini@unitus.it>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 22 May 2003 18:44:02 +0000 (18:44 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 22 May 2003 18:44:02 +0000 (18:44 +0000)
* include/bits/fstream.tcc (_M_underflow): simplify:
!__testout implies _M_filepos == _M_in_end, therefore
the first _M_file.seekoff call is never issued.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@67094 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/fstream.tcc

index 894faeb..29f972c 100644 (file)
@@ -1,3 +1,9 @@
+2003-05-22  Paolo Carlini  <pcarlini@unitus.it>
+
+       * include/bits/fstream.tcc (_M_underflow): simplify:
+       !__testout implies _M_filepos == _M_in_end, therefore
+       the first _M_file.seekoff call is never issued.
+
 2003-05-22  Benjamin Kosnik  <bkoz@redhat.com>
 
        * configure.in: Sort cross table.
index 4fb153f..0aa93fe 100644 (file)
@@ -196,8 +196,7 @@ namespace std
          // Check for pback madness, and if so swich back to the
          // normal buffers and jet outta here before expensive
          // fileops happen...
-         if (_M_pback_init)
-           _M_destroy_pback();
+         _M_destroy_pback();
 
          if (this->_M_in_cur < this->_M_in_end)
            {
@@ -208,15 +207,8 @@ namespace std
            }
 
          // Sync internal and external buffers.
-         // NB: __testget -> __testput as _M_buf_unified here.
-         if (this->_M_in_cur > this->_M_in_beg)
-           {
-             if (__testout)
-               _M_overflow();
-             else if (this->_M_in_cur != _M_filepos)
-               _M_file.seekoff(this->_M_in_cur - _M_filepos, ios_base::cur, 
-                               ios_base::in);
-           }
+         if (__testout && this->_M_out_beg < this->_M_out_lim)
+           _M_overflow();
 
          if (_M_buf_size > 1)
            {