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 want to have an advancePtr on ForeignPtr in order create a subarray.
> Is this reasonable and possible?

I don't think so. For example,
http://www.haskell.org/ghc/docs/latest/html/libraries/bytestring/Data-ByteString-Internal.html#t%3AByteString
explicitly list the offset.

> 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

  withSubArray :: SubArray a -> (Ptr a -> IO b) -> IO b
  withSubArray (SA fptr offset) act =
      withForeignPtr fptr $ \ptr -> act (ptr `plusPtr` offset)

?

HTH,

-- 
Felipe.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to