Haskell binding: free memory pool to avoid space leak when readPGF fails

This commit is contained in:
hallgren
2014-05-13 14:07:36 +00:00
parent 108d546db8
commit 33af15e803

View File

@@ -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}