On Mon, Dec 28, 2015 at 5:11 PM, Mariano Martinez Peck < marianopeck@gmail.com> wrote:
Hi Esteban,
Previously, I was doing with NB something like this:
*pointer := NativeBoost allocate: 4.* *self primitiveWhatever: pointer*
and:
*primitiveWhatever: pointer* * <primitive: #primitiveNativeCall module: #NativeBoostPlugin error: errorCode >* * ^ self nbCall: #( int void (NBExternalAddress pointer ) )*
But of course that doesn't work with latest FFI. So I tried instead:
*pointer := ExternalAddress allocate: 4.* *primitiveWhatever: pointer* * <primitive: #primitiveNativeCall module: #NativeBoostPlugin error: errorCode >* * ^ self nbCall: #( int void (ExternalAddress pointer ) )*
It looks like if I set "void*" rather than ExternalAddress it does work. Is this the expected path?
But then I get a ExternalAddress class #asExternalTypeOn: which is sent in FFICallout >> resolveType:
Any idea how can I use ExternalAddress in the signature of the FFI primitive call? What am I doing wrong?
Thanks in advance,
-- Mariano http://marianopeck.wordpress.com
-- Mariano http://marianopeck.wordpress.com