How to pass a C structure to a C library callback?

Andrew Whitworth wknight8111 at gmail.com
Wed Mar 2 21:27:25 UTC 2011


On Wed, Mar 2, 2011 at 4:22 PM, Peter Lobsinger <plobsing at gmail.com> wrote:
> Passing around pointers as ints is not advisable. We have pointer
> wrapper PMC types for this. You can wrap a pointer by doing something
> such as:
>
>  PMC *ptr_pmc = Parrot_pmc_new(interp, enum_class_Ptr);
>  VTABLE_set_pointer(interp, ptr_pmc, (void *)wb);
>
> Sorry, I'm not sure what the embedding API equivalent is. Passing such
> PMCs to NCI functions will work properly.


There isn't anything obvious in the embedding API right now to do
this. I'll add in routines tonight to wrap a native pointer in a PMC.

--Andrew Whitworth


More information about the parrot-dev mailing list