deRefStablePtr exception?

Alastair Reid reid at
Thu Jun 13 07:43:40 EDT 2002

> But you seem to be saying that
> 	freeStablePtr (castPtrToStablePtr Ptr.nullPtr)
> is meaningful... which part of the spec implies that?

Aha!  I was reading the last sentence of the freeStablePtr description
as though it applied to freeStablePtr when in fact it means that
castStablePtrToPtr is guaranteed not to diverge.  Well that's a lot
easier to implement.

btw What am I to make of the parenthetical remark 

  (in particular it may be Ptr.nullPtr)

Should I read that as a recommendation to implementors that when
casting a stableptr which has already been freed then they should
return nullPtr?   If so, is this required or just hinted/recommended?

> Either 'ErrorCall "Foreign.StablePtr.deRefStablePtr: invalid stable
> pointer"', or a new exception.  I don't mind which.

I'll pick one and add my choice to the spec then.

Alastair Reid        reid at

More information about the FFI mailing list