Proposed change to ForeignPtr
George Russell
ger at tzi.de
Fri Aug 9 12:29:13 EDT 2002
Alastair wrote
[snip]
> I propose the following changes:
>
> 1) Add these functions:
>
> makeForeignPtr :: Ptr a -> FunPtr (Ptr a -> IO ()) -> IO ForeignObj
> attachForeignPtrFinalizer :: ForeignPtr a -> FunPtr (Ptr a -> IO ()) -> IO ()
>
> 2) Remove newForeignPtr and addForeignPtrFinalizer
[snip]
I don't understand this proposal. What is a ForeignObj?
I call a C function, which gives me a cString :: Ptr CChar, and
it's my responsibility to free it when I've finished with it. So I convert it
to a ForeignPtr:
foreignPtr <- mkForeignPtr cString
and then always refer to the pointer via foreignPtr. When foreignPtr is garbage collected
the space is freed. So how do I do this with your proposal?
More information about the FFI
mailing list