I see that there's not a good way right now, but here's a workaround that uses information about the current layout:
A cpointer value is implemented as a Chez Scheme record with either 1 field or 2 fields. There are 2 fields only when the cpointer has an offset as a result of `ptr-add`, so you can probably ignore that. To extract the first field, assume that a record has the same layout as a vector, so use `Svector_ref(p, 0)` to extra the field from the cpointer `p`. Then you can use `Sunsigned_value()` to convert that field value to a pointer-sized integer, then case. I might have some part of that wrong, but it should be close... Of course, there should be better support for record-field access and cpointer extraction, so I'll add to the API. At Mon, 13 Jul 2020 11:43:35 -0500, Nate Griswold wrote: > I had a question. In embedded racket, I am passing a _cpointer value back > to c code by way of racket_apply's return value. > > Looking over https://docs.racket-lang.org/inside/cs-values_types.html , > there appears to be a group of functions associated with extracting values > from ptrs. I do not see one for a pointer ptr there. > > Is there a way to get at a returned _cpointer value from c code? > > Thanks > > Nate > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/CAM-xLPrKGgAgii7BjyfvCs6i0BmbMp0 > yoo09UoUF0nqVzX_CXQ%40mail.gmail.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/20200713112050.3cf%40sirmail.smtp.cs.utah.edu.

