classpath
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Crash in java_lang_Double.c with kissme


From: John Leuner
Subject: Crash in java_lang_Double.c with kissme
Date: Sat, 9 Feb 2002 19:31:37 +0000
User-agent: Mutt/1.3.23i

The code in java_lang_Double.c was crashing with my JVM (kissme) because it was 
failing to recognise the infinity values.

The following patch fixes the crash, but there are still many mauve failures 
(which might be causes by kissme or classpath)

The comparison was failing even though the two values have the same binary 
value (when printed out in gdb).

Index: native/jni/java-lang/java_lang_Double.c
===================================================================
RCS file: /cvsroot/classpath/classpath/native/jni/java-lang/java_lang_Double.c,v
retrieving revision 1.8
diff -u -r1.8 java_lang_Double.c
--- native/jni/java-lang/java_lang_Double.c     22 Jan 2002 22:27:02 -0000      
1.8
+++ native/jni/java-lang/java_lang_Double.c     9 Feb 2002 19:25:11 -0000
@@ -149,6 +149,9 @@
   char *s, *d;
   int i;
 
+  memset(buffer, 0, sizeof(buffer));
+  memset(result, 0, sizeof(result));
+
 #ifdef DEBUG
   fprintf (stderr, "java.lang.Double.toString (%g)\n", value);
 #endif
@@ -156,10 +159,10 @@
   if ((*env)->CallStaticBooleanMethod(env, cls, isNaNID, value))
     return (*env)->NewStringUTF(env, "NaN");
   
-  if (value == POSITIVE_INFINITY)
+  if ((long long) value == (long long) POSITIVE_INFINITY)
     return (*env)->NewStringUTF(env, "Infinity");
 
-  if (value == NEGATIVE_INFINITY)
+  if ((long long) value == (long long) NEGATIVE_INFINITY)
     return (*env)->NewStringUTF(env, "-Infinity");
 
   _dtoa (value, 0, 20, &decpt, &sign, NULL, buffer, (int)isFloat);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]