just in case,
and
https://www.virustotal.com/ru/file/738460bb6be71b4615581dad1a787cbb80b188e52fe3480ef54b7bfce500f3dd/analysis/1543226071/

����, 26 ��������. 2018 ��. �� 12:50, Yuriy Babah <babah.yuriy06@gmail.com>:
Thank, i'm trued do this, and i'm got
aBoxedFloat64������������ 4.5879913020458836e-41�� ,
which is still a very strange value

����, 26 ��������. 2018 ��. �� 12:33, tesonep@gmail.com <tesonep@gmail.com>:
Hi,��

�� ��could be the problem that you are using the same external array for both xm and ym?.��
The clone message just creates a shallow copy of the external array.��
It does not allocates a new external array, it only copies the address in both xm and ym.

You should better do something like this:

xm :=�� FFIExternalArray externalNewType: 'float' size: 2.
ym := FFIExternalArray externalNewType: 'float' size: 2.

Cheers.

On Mon, Nov 26, 2018 at 9:30 AM Yuriy Babah <babah.yuriy06@gmail.com> wrote:
Hi !

I'm trying to call a very simple function from C ++ lib, writed for the test.
function with prototype:

extern "C" float interpolationFunc(float* xm, float* ym, int size, float x).

In Pharo7 wrote:
FFIExamples class >> interpolationFunc_xm: xM ym: yM size: size x: x
���� ��^ self ffiCall: #(float interpolationFunc #(float * xM , float * yM , int size , float x)) module: 'libinterpolationLib.so'

in Playground i'm doing:
xm :=�� FFIExternalArray externalNewType: 'float' size: 2.
ym := xm clone.
#(2 3) doWithIndex: [:each :i | xm at: i put: each].
#(3 4) doWithIndex: [:each :i | ym at: i put: each].
FFIExamples interpolationFunc_xm: xm pointer ym: ym pointer size: 2�� x: 2.5 .

last expression returnin�� me 0.0, but right is 3.5.

I'm dit the same in Python3 ctypes, and there work's fine.

In UnifiedFFI booklet is absent chapter "Arrays", anybody may help with whot i'm doing wrong?


--
Pablo Tesone.
tesonep@gmail.com