aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerry Quinn <jlquinn@optonline.net>2003-03-05 03:01:42 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2003-03-05 03:01:42 +0000
commitc524ed5dc901a48ddc5a0dd7a0b859d2d44e635e (patch)
tree8e458fbcadd164b2dec01b82a322e3b5c8b43976
parent3aa83176986f320d465a368da8e57a6217828f88 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--libstdc++-v3/src/ios.cc4
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;
}
}