summaryrefslogtreecommitdiffstats
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2003-06-30 11:17:23 +0000
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2003-06-30 11:17:23 +0000
commit212d21612a858409d6b1a0ae7214c25b7f433a2f (patch)
treeb3c547f401d7d498167cb3a09ce8048cacbfa4c5 /libstdc++-v3
parente6261ab0446c3bee593879fb51aecd109a1e5b9b (diff)
downloadppe42-gcc-212d21612a858409d6b1a0ae7214c25b7f433a2f.tar.gz
ppe42-gcc-212d21612a858409d6b1a0ae7214c25b7f433a2f.zip
2003-06-30 Paolo Carlini <pcarlini@unitus.it>
* include/std/std_streambuf.h (_M_mode): Move from here to filebuf and stringbuf. (~basic_streambuf()): Don't set _M_mode. (basic_streambuf()): Don't set _M_mode. * include/std/std_fstream.h (_M_mode): Move here, from streambuf. (~basic_filebuf()): Clean up. * include/bits/fstream.tcc (basic_filebuf()): Set _M_mode. * include/std/std_sstream.h (_M_mode): Move here, from streambuf. * testsuite/27_io/basic_streambuf/cons/char/1.cc: Don't set _M_mode. * testsuite/27_io/basic_streambuf/overflow/char/1.cc: Likewise. * testsuite/27_io/basic_streambuf/sgetc/char/1.cc: Likewise. * testsuite/27_io/basic_streambuf/sgetn/char/1.cc: Likewise. * testsuite/27_io/basic_streambuf/sputn/char/1.cc: Likewise. 2003-06-30 Paolo Carlini <pcarlini@unitus.it> * include/std/std_fstream.h (_M_underflow): Remove. (uflow): Remove, inherited from streambuf. (underflow): Only declare. * include/bits/fstream.tcc (_M_underflow): Rename to underflow, to which is equivalent for __bump == false, simplify. * include/std/std_sstream.h (_M_underflow): Remove. (uflow): Remove, inherited from streambuf. (underflow): Only declare. * include/bits/sstream.tcc (_M_underflow): Rename to underflow, to which is equivalent for __bump == false, simplify. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68695 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog31
-rw-r--r--libstdc++-v3/include/bits/fstream.tcc21
-rw-r--r--libstdc++-v3/include/bits/sstream.tcc8
-rw-r--r--libstdc++-v3/include/std/std_fstream.h31
-rw-r--r--libstdc++-v3/include/std/std_sstream.h18
-rw-r--r--libstdc++-v3/include/std/std_streambuf.h13
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_streambuf/cons/char/1.cc2
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/1.cc2
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char/1.cc2
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/char/1.cc2
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1.cc2
11 files changed, 63 insertions, 69 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 2090247381f..a50cbed3de8 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,34 @@
+2003-06-30 Paolo Carlini <pcarlini@unitus.it>
+
+ * include/std/std_streambuf.h (_M_mode): Move from here to
+ filebuf and stringbuf.
+ (~basic_streambuf()): Don't set _M_mode.
+ (basic_streambuf()): Don't set _M_mode.
+ * include/std/std_fstream.h (_M_mode): Move here, from streambuf.
+ (~basic_filebuf()): Clean up.
+ * include/bits/fstream.tcc (basic_filebuf()): Set _M_mode.
+ * include/std/std_sstream.h (_M_mode): Move here, from streambuf.
+ * testsuite/27_io/basic_streambuf/cons/char/1.cc: Don't set _M_mode.
+ * testsuite/27_io/basic_streambuf/overflow/char/1.cc: Likewise.
+ * testsuite/27_io/basic_streambuf/sgetc/char/1.cc: Likewise.
+ * testsuite/27_io/basic_streambuf/sgetn/char/1.cc: Likewise.
+ * testsuite/27_io/basic_streambuf/sputn/char/1.cc: Likewise.
+
+2003-06-30 Paolo Carlini <pcarlini@unitus.it>
+
+ * include/std/std_fstream.h (_M_underflow): Remove.
+ (uflow): Remove, inherited from streambuf.
+ (underflow): Only declare.
+ * include/bits/fstream.tcc (_M_underflow): Rename to
+ underflow, to which is equivalent for __bump == false,
+ simplify.
+ * include/std/std_sstream.h (_M_underflow): Remove.
+ (uflow): Remove, inherited from streambuf.
+ (underflow): Only declare.
+ * include/bits/sstream.tcc (_M_underflow): Rename to
+ underflow, to which is equivalent for __bump == false,
+ simplify.
+
2003-06-29 Paolo Carlini <pcarlini@unitus.it>
* include/bits/stl_algo.h (LOTS): Fully qualify standard
diff --git a/libstdc++-v3/include/bits/fstream.tcc b/libstdc++-v3/include/bits/fstream.tcc
index 6f585dc4531..a5510e380aa 100644
--- a/libstdc++-v3/include/bits/fstream.tcc
+++ b/libstdc++-v3/include/bits/fstream.tcc
@@ -69,11 +69,11 @@ namespace std
template<typename _CharT, typename _Traits>
basic_filebuf<_CharT, _Traits>::
basic_filebuf() : __streambuf_type(), _M_file(&_M_lock),
- _M_state_cur(__state_type()), _M_state_beg(__state_type()),
- _M_buf(NULL), _M_buf_size(BUFSIZ), _M_buf_allocated(false),
- _M_reading(false), _M_writing(false), _M_last_overflowed(false),
- _M_pback_cur_save(0), _M_pback_end_save(0), _M_pback_init(false),
- _M_codecvt(0)
+ _M_mode(ios_base::openmode(0)), _M_state_cur(__state_type()),
+ _M_state_beg(__state_type()), _M_buf(NULL), _M_buf_size(BUFSIZ),
+ _M_buf_allocated(false), _M_reading(false), _M_writing(false),
+ _M_last_overflowed(false), _M_pback_cur_save(0), _M_pback_end_save(0),
+ _M_pback_init(false), _M_codecvt(0)
{
if (has_facet<__codecvt_type>(this->_M_buf_locale))
_M_codecvt = &use_facet<__codecvt_type>(this->_M_buf_locale);
@@ -180,7 +180,7 @@ namespace std
template<typename _CharT, typename _Traits>
typename basic_filebuf<_CharT, _Traits>::int_type
basic_filebuf<_CharT, _Traits>::
- _M_underflow(bool __bump)
+ underflow()
{
int_type __ret = traits_type::eof();
const bool __testin = this->_M_mode & ios_base::in;
@@ -194,12 +194,7 @@ namespace std
_M_destroy_pback();
if (this->gptr() < this->egptr())
- {
- __ret = traits_type::to_int_type(*this->gptr());
- if (__bump)
- this->gbump(1);
- return __ret;
- }
+ return traits_type::to_int_type(*this->gptr());
// Get and convert input sequence.
const size_t __buflen = this->_M_buf_size > 1
@@ -247,8 +242,6 @@ namespace std
_M_set_buffer(__ilen);
_M_reading = true;
__ret = traits_type::to_int_type(*this->gptr());
- if (__bump)
- this->gbump(1);
}
else if (__elen == 0)
{
diff --git a/libstdc++-v3/include/bits/sstream.tcc b/libstdc++-v3/include/bits/sstream.tcc
index f5b4c578071..d512e8adb08 100644
--- a/libstdc++-v3/include/bits/sstream.tcc
+++ b/libstdc++-v3/include/bits/sstream.tcc
@@ -115,7 +115,7 @@ namespace std
template <class _CharT, class _Traits, class _Alloc>
typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type
basic_stringbuf<_CharT, _Traits, _Alloc>::
- _M_underflow(bool __bump)
+ underflow()
{
int_type __ret = traits_type::eof();
const bool __testin = this->_M_mode & ios_base::in;
@@ -125,11 +125,7 @@ namespace std
_M_update_egptr();
if (this->gptr() < this->egptr())
- {
- __ret = traits_type::to_int_type(*this->gptr());
- if (__bump)
- this->gbump(1);
- }
+ __ret = traits_type::to_int_type(*this->gptr());
}
return __ret;
}
diff --git a/libstdc++-v3/include/std/std_fstream.h b/libstdc++-v3/include/std/std_fstream.h
index 605fad22b3e..b4ea860d6c3 100644
--- a/libstdc++-v3/include/std/std_fstream.h
+++ b/libstdc++-v3/include/std/std_fstream.h
@@ -105,6 +105,13 @@ namespace std
*/
__file_type _M_file;
+ /**
+ * @if maint
+ * Place to stash in || out || in | out settings for current filebuf.
+ * @endif
+ */
+ ios_base::openmode _M_mode;
+
// Current and beginning state type for codecvt.
/**
* @if maint
@@ -213,8 +220,6 @@ namespace std
~basic_filebuf()
{
this->close();
- _M_buf_size = 0;
- _M_last_overflowed = false;
}
// Members:
@@ -281,29 +286,9 @@ namespace std
// charater from the real input source when the buffer is empty.
// Buffered input uses underflow()
- // The only difference between underflow() and uflow() is that the
- // latter bumps _M_in_cur after the read. In the sync_with_stdio
- // case, this is important, as we need to unget the read character in
- // the underflow() case in order to maintain synchronization. So
- // instead of calling underflow() from uflow(), we create a common
- // subroutine to do the real work.
- /**
- * @if maint
- * @doctodo
- * @endif
- */
- int_type
- _M_underflow(bool __bump);
-
- // [documentation is inherited]
- virtual int_type
- underflow()
- { return _M_underflow(false); }
-
// [documentation is inherited]
virtual int_type
- uflow()
- { return _M_underflow(true); }
+ underflow();
// [documentation is inherited]
virtual int_type
diff --git a/libstdc++-v3/include/std/std_sstream.h b/libstdc++-v3/include/std/std_sstream.h
index 687e26ad07e..4d6d2604619 100644
--- a/libstdc++-v3/include/std/std_sstream.h
+++ b/libstdc++-v3/include/std/std_sstream.h
@@ -85,6 +85,13 @@ namespace std
//@}
protected:
+ /**
+ * @if maint
+ * Place to stash in || out || in | out settings for current stringbuf.
+ * @endif
+ */
+ ios_base::openmode _M_mode;
+
// Data Members:
/**
* @if maint
@@ -179,18 +186,9 @@ namespace std
_M_sync(const_cast<char_type*>(_M_string.data()), 0, __len);
}
- int_type
- _M_underflow(bool __bump);
-
- // [documentation is inherited]
- virtual int_type
- underflow()
- { return _M_underflow(false); }
-
// [documentation is inherited]
virtual int_type
- uflow()
- { return _M_underflow(true); }
+ underflow();
// [documentation is inherited]
virtual int_type
diff --git a/libstdc++-v3/include/std/std_streambuf.h b/libstdc++-v3/include/std/std_streambuf.h
index f29fea5f5b7..70967ebf742 100644
--- a/libstdc++-v3/include/std/std_streambuf.h
+++ b/libstdc++-v3/include/std/std_streambuf.h
@@ -178,13 +178,6 @@ namespace std
/**
* @if maint
- * Place to stash in || out || in | out settings for current streambuf.
- * @endif
- */
- ios_base::openmode _M_mode;
-
- /**
- * @if maint
* Current locale setting.
* @endif
*/
@@ -201,9 +194,7 @@ namespace std
/// Destructor deallocates no buffer space.
virtual
~basic_streambuf()
- {
- _M_mode = ios_base::openmode(0);
- }
+ { }
// [27.5.2.2.1] locales
/**
@@ -451,7 +442,7 @@ namespace std
basic_streambuf()
: _M_in_beg(0), _M_in_cur(0), _M_in_end(0),
_M_out_beg(0), _M_out_cur(0), _M_out_end(0),
- _M_mode(ios_base::openmode(0)),_M_buf_locale(locale())
+ _M_buf_locale(locale())
{ }
// [27.5.2.3.1] get area access
diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/cons/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/cons/char/1.cc
index 905852422a6..c48ecbcc43d 100644
--- a/libstdc++-v3/testsuite/27_io/basic_streambuf/cons/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_streambuf/cons/char/1.cc
@@ -41,7 +41,7 @@ public:
typedef std::streambuf::char_type char_type;
testbuf(): std::streambuf()
- { _M_mode = (std::ios_base::in | std::ios_base::out); }
+ { }
bool
check_pointers()
diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/1.cc
index 386193b46c0..2a3a4be1a25 100644
--- a/libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/1.cc
@@ -41,7 +41,7 @@ public:
typedef std::streambuf::char_type char_type;
testbuf(): std::streambuf()
- { _M_mode = (std::ios_base::in | std::ios_base::out); }
+ { }
bool
check_pointers()
diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char/1.cc
index 9efa3a72a48..d2833831e72 100644
--- a/libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char/1.cc
@@ -41,7 +41,7 @@ public:
typedef std::streambuf::char_type char_type;
testbuf(): std::streambuf()
- { _M_mode = (std::ios_base::in | std::ios_base::out); }
+ { }
bool
check_pointers()
diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/char/1.cc
index 2466de5299f..f1392dc631d 100644
--- a/libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/char/1.cc
@@ -41,7 +41,7 @@ public:
typedef std::streambuf::char_type char_type;
testbuf(): std::streambuf()
- { _M_mode = (std::ios_base::in | std::ios_base::out); }
+ { }
bool
check_pointers()
diff --git a/libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1.cc
index f48f788f4f2..0feabcd08cd 100644
--- a/libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1.cc
@@ -41,7 +41,7 @@ public:
typedef std::streambuf::char_type char_type;
testbuf(): std::streambuf()
- { _M_mode = (std::ios_base::in | std::ios_base::out); }
+ { }
bool
check_pointers()
OpenPOWER on IntegriCloud