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

Peter Lobsinger plobsing at gmail.com
Wed Mar 2 21:22:43 UTC 2011


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.


More information about the parrot-dev mailing list