okay, seems like i found why:
NBExternalAddress>>ulongAt: zeroBasedOffset put: value
"Store unsigned 64-bit integer into memory at (receiver's address +
ZERO-based offset) using native byte order.
Note, there is no range checking "
It should use 32-bit values..
Callback code using ulongAt:put. to store single value at certain
address in machine code.
Since it stores 64-bit value instead of 32bit, it overrides the
instructions which follow, and of course that leads to crash.
Trait aliases.. is wrong:
#longAt:->#nbInt64AtOffset:. #longAt:put:->#nbInt64AtOffset:put:.
#ulongAt:->#nbUInt64AtOffset:. #ulongAt:put:->#nbUInt64AtOffset:put:
another reason to get rid of confusion with C types..
--
Best regards,
Igor Stasenko.