Bug fix in Float.floatToRawIntBits and rawIntBitsToFloat.
Fixes mauve Math.min/max tests.
--- a/JavaVM.st Sun Dec 16 10:32:25 2012 +0100
+++ b/JavaVM.st Sun Dec 16 11:20:22 2012 +0100
@@ -7638,14 +7638,13 @@
f := aJavaContext argAt:1.
f class == ShortFloat ifFalse:[ self throwIllegalArgumentException: 'Not a float'].
%{
- int i;
- i = (int)(__shortFloatVal(f));
- RETURN (__MKINT(i));
+ int *ival = &__shortFloatVal(f);
+ RETURN (__MKINT(*ival));
%}.
self primitiveFailed.
"Created: / 09-11-2010 / 20:59:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 07-08-2011 / 21:45:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 16-12-2012 / 11:16:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
_java_lang_Float_intBitsToFloat: nativeContext
@@ -7657,9 +7656,13 @@
i := nativeContext argAt:1.
f := ShortFloat new.
%{
- __shortFloatVal(f) = (float)(__intVal(i));
+ int ival = __intVal(i);
+ float *fval = &ival;
+ __shortFloatVal(f) = *fval;
%}.
^f
+
+ "Modified: / 16-12-2012 / 10:39:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
_java_lang_Object_clone: nativeContext
@@ -19960,7 +19963,7 @@
!
version_CVS
- ^ 'Header: /cvs/stx/stx/libjava/JavaVM.st,v 1.186 2011/08/22 14:49:28 vrany Exp '
+ ^ '§Header: /cvs/stx/stx/libjava/JavaVM.st,v 1.186 2011/08/22 14:49:28 vrany Exp §'
!
version_HG
@@ -19969,7 +19972,7 @@
!
version_SVN
- ^ 'Id'
+ ^ '§Id§'
! !
JavaVM initialize!