From 121afca05a579def9c79536b5a3b658bc64aa0ac Mon Sep 17 00:00:00 2001 From: hallgren Date: Tue, 13 May 2014 14:07:36 +0000 Subject: [PATCH] Haskell binding: free memory pool to avoid space leak when readPGF fails --- src/runtime/haskell-bind/PGF2.hsc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/runtime/haskell-bind/PGF2.hsc b/src/runtime/haskell-bind/PGF2.hsc index bff38ec92..42d49deb4 100644 --- a/src/runtime/haskell-bind/PGF2.hsc +++ b/src/runtime/haskell-bind/PGF2.hsc @@ -55,8 +55,10 @@ readPGF fpath = if ty == gu_type__GuErrno then do perrno <- (#peek GuExn, data.data) exn errno <- peek perrno + gu_pool_free pool ioError (errnoToIOError "readPGF" (Errno errno) Nothing (Just fpath)) - else throw (PGFError "The grammar cannot be loaded") + else do gu_pool_free pool + throw (PGFError "The grammar cannot be loaded") else return pgf master <- newForeignPtr gu_pool_finalizer pool return PGF {pgf = pgf, pgfMaster = master}