From: simonmar Date: Mon, 25 Sep 2000 10:48:50 +0000 (+0000) Subject: [project @ 2000-09-25 10:48:50 by simonmar] X-Git-Tag: Approximately_9120_patches~3741 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=8ac8460237e85049ef2fde1b7e115fa1b52cd378;p=ghc-hetmet.git [project @ 2000-09-25 10:48:50 by simonmar] Don't blindly flush the buffer just because it is writeable. It might be a RW handle with a read buffer. --- diff --git a/ghc/lib/std/cbits/closeFile.c b/ghc/lib/std/cbits/closeFile.c index 3c3eb4a..82fdc51 100644 --- a/ghc/lib/std/cbits/closeFile.c +++ b/ghc/lib/std/cbits/closeFile.c @@ -1,7 +1,7 @@ /* * (c) The GRASP/AQUA Project, Glasgow University, 1994-1998 * - * $Id: closeFile.c,v 1.9 2000/03/28 08:49:56 simonmar Exp $ + * $Id: closeFile.c,v 1.10 2000/09/25 10:48:50 simonmar Exp $ * * hClose Runtime Support */ @@ -32,8 +32,9 @@ closeFile(StgForeignPtr ptr, StgInt flush_buf) return 0; } - if ( flush_buf != 0 && (fo->flags & FILEOBJ_WRITE) ) { - writeFileObject(ptr,fo->bufWPtr); + /* Flush buffer if we have unwritten data */ + if ( flush_buf != 0 ) { + flushBuffer(fo); } /* If the flush failed, we ignore this and soldier on.. */