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