OSDN Git Service

2002-04-13 Adam King <aking@dreammechanics.com>
authormark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 15 Apr 2002 03:11:12 +0000 (03:11 +0000)
committermark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 15 Apr 2002 03:11:12 +0000 (03:11 +0000)
        * java/lang/natDouble.cc (parseDouble): Allow a number to end with
        the f/F/d/D modifiers.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52308 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/java/lang/natDouble.cc

index 4e8eb03..611da76 100644 (file)
@@ -1,3 +1,8 @@
+2002-04-13  Adam King <aking@dreammechanics.com>
+
+       * java/lang/natDouble.cc (parseDouble): Allow a number to end with
+       the f/F/d/D modifiers.
+
 2002-04-12  Anthony Green  <green@redhat.com>
 
        * Makefile.am (jardir, jar_DATA): Define (for libgcj.jar).
index b0b24a7..329795d 100644 (file)
@@ -161,9 +161,19 @@ jdouble
 java::lang::Double::parseDouble(jstring str)
 {
   int length = str->length();
+
   while (length > 0
         && Character::isWhitespace(str->charAt(length - 1)))
     length--;
+
+  // The String could end with a f/F/d/D which is valid but we don't need.
+  if (length > 0)
+    {
+      jchar last = str->charAt(length-1);
+      if (last == 'f' || last == 'F' || last == 'd' || last == 'D')
+       length--;
+    }
+
   jsize start = 0;
   while (length > 0
         && Character::isWhitespace(str->charAt(start)))
@@ -184,7 +194,7 @@ java::lang::Double::parseDouble(jstring str)
       if (endptr == data + blength)
        return val;
     }
-  throw new NumberFormatException;
+  throw new NumberFormatException(str);
 }
 
 void