[squeak-dev] [BUG] signedLongAt: 1 put:−2,147,483,648

John M McIntosh johnmci at smalltalkconsulting.com
Wed Nov 26 07:15:32 UTC 2008


I noted the the current VMs don't handle the case of storing  
−2,147,483,648 (primitive failure) via  signed32BitValueOf:  usually  
called via FFI  signedLongAt:put:

For plugin writers who used signed64BitValueOf: (primitive failure)  
and   signed64BitIntegerFor:  returned  zero if passed  
−9,223,372,036,854,775,808.
signed64BitIntegerFor: is the one that is nasty since your value of  
0x8000000000000000  silently turns in 0.

I reopened problem http://bugs.squeak.org/view.php?id=6987 and wrote  
some SUnits.

I also provided a suggested fix, which allows me to run the SUnits.

Lastly for Alien I added long long (signed/unsigned) support which is  
still missing in the FFI plugin so I could do some testing.


--
= 
= 
= 
========================================================================
John M. McIntosh <johnmci at smalltalkconsulting.com>
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
= 
= 
= 
========================================================================






More information about the Squeak-dev mailing list