Fix memory leak in Haskell binding and simpily example (#86)
This commit is contained in:
parent
4a69266256
commit
9981a9d1e4
@ -327,7 +327,7 @@ import Ruapu
|
|||||||
main = do
|
main = do
|
||||||
Ruapu.init
|
Ruapu.init
|
||||||
Ruapu.supports "mmx" >>= putStrLn . show
|
Ruapu.supports "mmx" >>= putStrLn . show
|
||||||
Ruapu.rua >>= foldl (\m x -> m >> putStrLn x) (return ())
|
Ruapu.rua >>= sequence_ . map putStrLn
|
||||||
```
|
```
|
||||||
</td></tr>
|
</td></tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
module Ruapu where
|
module Ruapu where
|
||||||
|
|
||||||
import Foreign
|
import Foreign
|
||||||
import Foreign.C.String (CString, newCAString, peekCAString)
|
import Foreign.C.String (CString, withCAString, peekCAString)
|
||||||
|
|
||||||
foreign import ccall "ruapu.c ruapu_init"
|
foreign import ccall "ruapu.c ruapu_init"
|
||||||
init :: IO ()
|
init :: IO ()
|
||||||
@ -15,7 +15,7 @@ foreign import ccall "ruapu.c ruapu_rua"
|
|||||||
cRua :: IO (Ptr CString)
|
cRua :: IO (Ptr CString)
|
||||||
|
|
||||||
supports :: String -> IO Bool
|
supports :: String -> IO Bool
|
||||||
supports xs = (newCAString xs) >>= cSupports
|
supports = flip withCAString cSupports
|
||||||
|
|
||||||
rua :: IO [String]
|
rua :: IO [String]
|
||||||
rua = cRua >>= peekArray0 nullPtr >>= mapM peekCAString
|
rua = cRua >>= peekArray0 nullPtr >>= mapM peekCAString
|
||||||
|
Loading…
Reference in New Issue
Block a user