FFI Ptr question

paul@theV.net paul@theV.net
Thu, 3 Jul 2003 11:34:08 +0800


If a C function returns a (void*), let's say:

data MyObj = MyObj

foreign import ccall "static myobj_ffi.h new_obj" newMyObject :: IO (Ptr MyObj)

ptr <- newMyObject

should I free the ptr afterwards or not?

If I have another imported C function:

foreign import ccall "static myobj_ffi.h print_obj" printMyObject :: Ptr MyObj -> IO ()

Can I safely assume the C function print_obj(void *) always get the
same pointer even if I call (printMyObject ptr) multiple times?

Any hints is greatly appreciated!

Regards,
.paul.