On 8 Nov 2016, at 12:55, Dimitris Chloupis <kilon.alios@gmail.com> wrote:
Thank you Esteban
By the way I really love the design of UFFI , very clean and quite easy to understand , great work to you and Igor :)
UFFI is just mine ;) (but I sanded in giant shoulders as I took Igor work as inspiration⦠and to âborrowâ many cool ideas) Esteban
On Tue, Nov 8, 2016 at 1:54 PM Esteban Lorenzano <estebanlm@gmail.com <mailto:estebanlm@gmail.com>> wrote:
On 8 Nov 2016, at 12:49, Dimitris Chloupis <kilon.alios@gmail.com <mailto:kilon.alios@gmail.com>> wrote:
I was reaching a similar conclusion
Currently I have a void pointer to the struct with the members I mentioned
I can get char[100]
pointerToStruct fromCString
and I can get the int with
pointerToStruct getHandle integerAt: 101 size:4 signed: false
so if I want to pass the address of the pointer to my YourStruct instance will I have to initialize with
YourStruct fromHandler: (pointerToStruct getHandle)
is this a correct and safe way to pass the address ?
yes.
Esteban
On Tue, Nov 8, 2016 at 1:21 PM Esteban Lorenzano <estebanlm@gmail.com <mailto:estebanlm@gmail.com>> wrote: it never could. you need to do a âspecial typeâ, who has to be something like:
YourStruct class>>initialize Char100 := FFITypeArray ofType: #char.
fieldsDesc ^ #( Char100 data; int count; )
but then⦠you want to optimise that and in field accessors, who will look something like this:
YourStruct >>data "This method was automatically generated" ^(FFITypeArray ofType: #char size: 100) fromHandle: (handle copyFrom: 1 to: 100)
you can change that for:
YourStruct >>data "This method was automatically generated" ^Char100 fromHandle: (handle copyFrom: 1 to: 100)
and same for setter. (other way will work, but it will be suboptimal)
Esteban
On 8 Nov 2016, at 12:10, Dimitris Chloupis <kilon.alios@gmail.com <mailto:kilon.alios@gmail.com>> wrote:
I have FFIExternalStructure which has at class side
fieldsDesc ^#( char data[100]; int count; )
if I try to do
EphCPPTestStructure rebuildFieldAccessors .
in order to generate the accessors for the members of the struct it complains with an error that it does not recognise the type of " [ "
Does that mean that char arrays are other arrays are not supported as struct members or will I have to do this manually ?