Hi,
I have an issue whith nested structures.
I made some "dummy" structures in c:
typedef struct vec3 {
double data[3];
} vec3;
typedef struct position {
int i;
vec3 vec;
} position;
And a "dummy" function to fill it:
void fillStruct(position *position)
{
position -> i = 19;
(position -> vec).data[0] = 1;
(position -> vec).data[1] = 2;
(position -> vec).data[2] = 3;
}
But I can't make the nested structure work.
The "i" is correctly set to 19 but I have values that doesn't make any
sense in the vec3 structure.
In Pharo
I declared the Double3 type for the array inside Vec3:
Double3 := FFITypeArray ofType: 'double' size: 3
Vec3>>fieldsDesc
^ #(
Double3 v;
)
And the position:
Position>>fieldsDesc
^ #(
int i;
Vec3 vec;
)
The ffi call:
^ self ffiCall: #(void fillStruct(Position *position)) module: 'Test.dll'
Sorry for the long / messy mail :p
Any clues ?
Cheers,
Merwan