diff options
author | Jerry Quinn <jlquinn@optonline.net> | 2003-03-05 03:01:42 +0000 |
---|---|---|
committer | Benjamin Kosnik <bkoz@gcc.gnu.org> | 2003-03-05 03:01:42 +0000 |
commit | c524ed5dc901a48ddc5a0dd7a0b859d2d44e635e (patch) | |
tree | 8e458fbcadd164b2dec01b82a322e3b5c8b43976 | |
parent | 3aa83176986f320d465a368da8e57a6217828f88 (diff) | |
download | gcc-c524ed5dc901a48ddc5a0dd7a0b859d2d44e635e.zip gcc-c524ed5dc901a48ddc5a0dd7a0b859d2d44e635e.tar.gz gcc-c524ed5dc901a48ddc5a0dd7a0b859d2d44e635e.tar.bz2 |
ios.cc (ios_base::_M_grow_words): Don't delete _M_word on new failure.
2003-03-04 Jerry Quinn <jlquinn@optonline.net>
* src/ios.cc (ios_base::_M_grow_words): Don't delete _M_word on
new failure. Throw exception if badbit and exception mask when ix
>= numeric_limits<int>::max().
From-SVN: r63824
-rw-r--r-- | libstdc++-v3/ChangeLog | 6 | ||||
-rw-r--r-- | libstdc++-v3/src/ios.cc | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 4ada087..67fbed7 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2003-03-04 Jerry Quinn <jlquinn@optonline.net> + + * src/ios.cc (ios_base::_M_grow_words): Don't delete _M_word on + new failure. Throw exception if badbit and exception mask when ix + >= numeric_limits<int>::max(). + 2003-03-04 Alexandre Oliva <aoliva@redhat.com> * src/strstream.cc (strstreambuf::overflow): Make sure operands of diff --git a/libstdc++-v3/src/ios.cc b/libstdc++-v3/src/ios.cc index 9de6d13..871e836 100644 --- a/libstdc++-v3/src/ios.cc +++ b/libstdc++-v3/src/ios.cc @@ -253,8 +253,6 @@ namespace std { words = new _Words[newsize]; } catch (...) { - delete [] _M_word; - _M_word = 0; _M_streambuf_state |= badbit; if (_M_streambuf_state & _M_exception) __throw_ios_failure("ios_base::_M_grow_words failure"); @@ -271,6 +269,8 @@ namespace std else { _M_streambuf_state |= badbit; + if (_M_streambuf_state & _M_exception) + __throw_ios_failure("ios_base::_M_grow_words failure"); return _M_word_zero; } } |