natDouble.cc (parseDouble): Allow a number to end with the f/F/d/D modifiers.
authorAdam King <aking@dreammechanics.com>
Mon, 15 Apr 2002 03:11:12 +0000 (03:11 +0000)
committerMark Wielaard <mark@gcc.gnu.org>
Mon, 15 Apr 2002 03:11:12 +0000 (03:11 +0000)
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.

From-SVN: r52308

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

index 4e8eb0336dfd69b11bcf23159aed419b0981c7c0..611da763eb6cc2f0f3fd78c1a011997e74c1e41d 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 b0b24a7547c2fbd829fa264964cfaa7f6f958ab1..329795d3e217a1d2889e24acc1e07240caaec8d6 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