mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-24 03:52:50 -06:00
Freeing StablePtr's in PyGF.
This commit is contained in:
@@ -9,6 +9,11 @@ import Foreign.C.Types
|
||||
#include "pygf.h"
|
||||
|
||||
-- type PyPtr = Ptr Py
|
||||
freeSp :: String -> Ptr a -> IO ()
|
||||
freeSp tname p = do
|
||||
sp <- (#peek PyGF, sp) p
|
||||
freeStablePtr sp
|
||||
putStrLn $ "freeing " ++ tname ++ " at " ++ (show p)
|
||||
|
||||
instance Storable PGF where
|
||||
sizeOf _ = (#size PyGF)
|
||||
@@ -49,7 +54,14 @@ instance Storable Tree where
|
||||
peek p = do
|
||||
sp <- (#peek PyGF, sp) p
|
||||
deRefStablePtr sp
|
||||
|
||||
|
||||
foreign export ccall gf_freePGF :: Ptr PGF -> IO ()
|
||||
foreign export ccall gf_freeType :: Ptr Type -> IO ()
|
||||
foreign export ccall gf_freeLanguage :: Ptr Language -> IO ()
|
||||
gf_freePGF = freeSp "pgf"
|
||||
gf_freeType = freeSp "type"
|
||||
gf_freeLanguage = freeSp "language"
|
||||
|
||||
|
||||
{-foreign export ccall gf_printCId :: Ptr CId-> IO CString
|
||||
gf_printCId p = do
|
||||
|
||||
Reference in New Issue
Block a user