From d968106fdef283b30d06ae45fa2f87329e1c2269 Mon Sep 17 00:00:00 2001 From: simonmar Date: Mon, 7 Nov 2005 16:39:04 +0000 Subject: [PATCH] [project @ 2005-11-07 16:39:04 by simonmar] add GHC notes to mallocForeignPtr --- GHC/ForeignPtr.hs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/GHC/ForeignPtr.hs b/GHC/ForeignPtr.hs index 9712763..c9217ef 100644 --- a/GHC/ForeignPtr.hs +++ b/GHC/ForeignPtr.hs @@ -121,6 +121,14 @@ mallocForeignPtr :: Storable a => IO (ForeignPtr a) -- although it may be implemented differently internally: you may not -- assume that the memory returned by 'mallocForeignPtr' has been -- allocated with 'Foreign.Marshal.Alloc.malloc'. +-- +-- GHC notes: 'mallocForeignPtr' has a heavily optimised +-- implementation in GHC. It uses pinned memory in the garbage +-- collected heap, so the 'ForeignPtr' does not require a finalizer to +-- free the memory. Use of 'mallocForeignPtr' and associated +-- functions is strongly recommended in preference to 'newForeignPtr' +-- with a finalizer. +-- mallocForeignPtr = doMalloc undefined where doMalloc :: Storable b => b -> IO (ForeignPtr b) doMalloc a = do -- 1.7.10.4