Hi Aliaksei,

On Jan 13, 2017, at 10:27 AM, Aliaksei Syrel <alex.syrel@gmail.com> wrote:

Hi

The following code crashes windows spur32 VM without crash.dmp:
(crashes not only in case of int8, but ulong, int16/32 and so on...)

Callback instantiation: 

createCallback
   ^ FFICallback 
  signature: #(int8 (int8))
  block: [ :value | value ]

C function:

int8_t test(int8_t(*function)(int8_t), int8_t value) {
   return function(value);
}

FFI call:

primCall: aCallback int8: aNumber
   ^ self ffiCall: #(int8 test(FFICallback aCallback, int8 aNumber))

Test case:

test
  self 
    assert: (self primCall: self createCallback int8: 0)
    equals: 0


Windows 10.
VM from today:
http://files.pharo.org/vm/pharo-spur32/win/pharo-win-i386-201701130756-83c0ef1.zip
Image 60343:
http://files.pharo.org/image/60/60343.zip

P.S. what is the best place to report FFI / Alien issues?

vm-dev

P.P.S Iceberg works

Cheers,
Alex