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

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

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

johnmci

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 <[hidden email]>
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
=
=
=
========================================================================