Code review request for 6897550 BigInteger constructor should use local cached String length
Joseph D. Darcy
Joe.Darcy at Sun.COM
Tue Nov 3 22:03:34 UTC 2009
Hello.
Please review this simple change to replace several calls to
val.length() with an already cached copy of val.length(); patch below.
6897550 BigInteger constructor should use local cached String length
http://cr.openjdk.java.net/~darcy/6897550.0/
-Joe
--- old/src/share/classes/java/math/BigInteger.java 2009-11-03
13:57:31.000000000 -0800
+++ new/src/share/classes/java/math/BigInteger.java 2009-11-03
13:57:31.000000000 -0800
@@ -292,7 +292,7 @@
if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX)
throw new NumberFormatException("Radix out of range");
- if (val.length() == 0)
+ if (len == 0)
throw new NumberFormatException("Zero length BigInteger");
// Check for at most one leading sign
@@ -303,7 +303,7 @@
// No leading sign character or at most one leading sign
character
if (index1 == 0 || index2 == 0) {
cursor = 1;
- if (val.length() == 1)
+ if (len == 1)
throw new NumberFormatException("Zero length
BigInteger");
}
if (index1 == 0)
@@ -342,7 +342,7 @@
// Process remaining digit groups
int superRadix = intRadix[radix];
int groupVal = 0;
- while (cursor < val.length()) {
+ while (cursor < len) {
group = val.substring(cursor, cursor += digitsPerInt[radix]);
groupVal = Integer.parseInt(group, radix);
if (groupVal < 0)
More information about the core-libs-dev
mailing list