Nov. 24, 2012
2:39 p.m.
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.