On Mon, Feb 23, 2009 at 6:48 AM, Henning Thielemann <lemm...@henning-thielemann.de> wrote: > > On Mon, 23 Feb 2009, Felipe Lessa wrote: > >> On Mon, Feb 23, 2009 at 10:12 AM, Henning Thielemann >> <lemm...@henning-thielemann.de> wrote: >>> >>> Is still someone on haskell.org ? >> >> Sorry, I don't know :). > > I meant f...@haskell.org > >>> Do I have to use 'touchForeignPtr' as finalizer of the subarray's >>> ForeignPtr >>> in order to assert that the superarray lives at least as long as the >>> subarray? >> >> This may work, but seems like a fragile hack. Why not >> >> >> data SubArray a = SA {-# UNPACK #-} !(ForeignPtr a) >> {-# UNPACK #-} !Int > > This would work, but I want to convert from StorableVector to CArray and > StorableVector has an offset parameter, which is missing in CArray.
I've used something like the following for that purpose: advanceForeignPtr :: ForeignPtr a -> Int -> IO (ForeignPtr a) advanceForeignPtr fp n = withForeignPtr fp $ \p -> newForeignPtr_ (p `advancePtr` n) -Judah _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe