OpenJDK / jdk / jdk
changeset 4182:ffdc79c88a0e
6897550: BigInteger constructor should use local cached String length
Reviewed-by: andrew, chegar
author | darcy |
---|---|
date | Tue, 03 Nov 2009 15:01:50 -0800 |
parents | 12101ac6820d |
children | 0e342cecb3a9 3cfc595ac892 |
files | jdk/src/share/classes/java/math/BigInteger.java |
diffstat | 1 files changed, 4 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/jdk/src/share/classes/java/math/BigInteger.java Fri Oct 30 21:31:02 2009 +0000 +++ b/jdk/src/share/classes/java/math/BigInteger.java Tue Nov 03 15:01:50 2009 -0800 @@ -288,11 +288,11 @@ */ public BigInteger(String val, int radix) { int cursor = 0, numDigits; - int len = val.length(); + final int len = val.length(); 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)