aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>2003-04-11 02:57:44 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2003-04-11 02:57:44 +0000
commite6670c79c78c657ab11b2f89ee0413492f17b92f (patch)
treec825d1bcab4804c66b3be739616e9496ba63630e
parent6d9c4c8386f1d11605d1c383f68d118be6aeea18 (diff)
downloadgcc-e6670c79c78c657ab11b2f89ee0413492f17b92f.zip
gcc-e6670c79c78c657ab11b2f89ee0413492f17b92f.tar.gz
gcc-e6670c79c78c657ab11b2f89ee0413492f17b92f.tar.bz2
basic_file_stdio.cc (__basic_file<char>::close): Don't flush stream twice.
* basic_file_stdio.cc (__basic_file<char>::close): Don't flush stream twice. Always set _M_cfile to 0 when stream was open. From-SVN: r65458
-rw-r--r--libstdc++-v3/ChangeLog5
-rw-r--r--libstdc++-v3/config/io/basic_file_stdio.cc12
2 files changed, 11 insertions, 6 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 1f1f3c4..11b2af8 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2003-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * basic_file_stdio.cc (__basic_file<char>::close): Don't flush stream
+ twice. Always set _M_cfile to 0 when stream was open.
+
2003-04-09 Benjamin Kosnik <bkoz@redhat.com>
Reshuffle 27_io testsuite. * testsuite/27_io/filebuf.cc,
diff --git a/libstdc++-v3/config/io/basic_file_stdio.cc b/libstdc++-v3/config/io/basic_file_stdio.cc
index b2287b2..7f9c18b 100644
--- a/libstdc++-v3/config/io/basic_file_stdio.cc
+++ b/libstdc++-v3/config/io/basic_file_stdio.cc
@@ -195,12 +195,12 @@ namespace std
__basic_file* __retval = static_cast<__basic_file*>(NULL);
if (this->is_open())
{
- fflush(_M_cfile);
- if ((_M_cfile_created && fclose(_M_cfile) == 0) || !_M_cfile_created)
- {
- _M_cfile = 0;
- __retval = this;
- }
+ if (_M_cfile_created)
+ fclose(_M_cfile);
+ else
+ fflush(_M_cfile);
+ _M_cfile = 0;
+ __retval = this;
}
return __retval;
}