[project @ 2005-01-14 11:46:24 by simonmar]
authorsimonmar <unknown>
Fri, 14 Jan 2005 11:46:24 +0000 (11:46 +0000)
committersimonmar <unknown>
Fri, 14 Jan 2005 11:46:24 +0000 (11:46 +0000)
hGetStringBuffer: hClose the file after we've read it (duh).  This
causes a real problem on Windows, where the file remains locked in
GHCi, and cannot be modified until after the finalizer has closed it
(bug #1047408).

ghc/compiler/utils/StringBuffer.lhs

index 61a0321..a8c7a1e 100644 (file)
@@ -49,7 +49,8 @@ import GHC.IOBase
 import GHC.IO          ( slurpFile )
 #endif
 
-import IO                      ( openFile, hFileSize, IOMode(ReadMode) )
+import IO                      ( openFile, hFileSize, IOMode(ReadMode),
+                                 hClose )
 #if __GLASGOW_HASKELL__ >= 601
 import System.IO               ( openBinaryFile )
 #else
@@ -103,6 +104,7 @@ hGetStringBuffer fname = do
    arr <- newArray_ (0,size_i-1)
    r <- if size_i == 0 then return 0 else hGetArray h arr size_i
 #endif
+   hClose h
    if (r /= size_i)
        then ioError (userError "short read of file")
        else do