Author: [EMAIL PROTECTED]
Date: Wed Sep 3 15:08:25 2008
New Revision: 3610
Modified:
releases/1.5/user/super/com/google/gwt/emul/java/lang/Integer.java
releases/1.5/user/super/com/google/gwt/emul/java/lang/Long.java
Log:
Fixes a dumb mistake where we were clinit'ing in a loop references to
__Digits.digits; this should make Long->String and Integer->String
conversions faster.
Review by: spoon (desk check)
Modified: releases/1.5/user/super/com/google/gwt/emul/java/lang/Integer.java
==============================================================================
--- releases/1.5/user/super/com/google/gwt/emul/java/lang/Integer.java
(original)
+++ releases/1.5/user/super/com/google/gwt/emul/java/lang/Integer.java Wed
Sep 3 15:08:25 2008
@@ -184,19 +184,20 @@
final int bufSize = 33;
char[] buf = new char[bufSize];
+ char[] digits = __Digits.digits;
int pos = bufSize - 1;
if (value >= 0) {
while (value >= radix) {
- buf[pos--] = __Digits.digits[value % radix];
+ buf[pos--] = digits[value % radix];
value /= radix;
}
- buf[pos] = __Digits.digits[value];
+ buf[pos] = digits[value];
} else {
while (value <= -radix) {
- buf[pos--] = __Digits.digits[-(value % radix)];
+ buf[pos--] = digits[-(value % radix)];
value /= radix;
}
- buf[pos--] = __Digits.digits[-value];
+ buf[pos--] = digits[-value];
buf[pos] = '-';
}
return String.__valueOf(buf, pos, bufSize);
@@ -227,19 +228,20 @@
final int bufSize = 32 / shift;
int bitMask = (1 << shift) - 1;
char[] buf = new char[bufSize];
+ char[] digits = __Digits.digits;
int pos = bufSize - 1;
if (value >= 0) {
while (value > bitMask) {
- buf[pos--] = __Digits.digits[value & bitMask];
+ buf[pos--] = digits[value & bitMask];
value >>= shift;
}
} else {
while (pos > 0) {
- buf[pos--] = __Digits.digits[value & bitMask];
+ buf[pos--] = digits[value & bitMask];
value >>= shift;
}
}
- buf[pos] = __Digits.digits[value & bitMask];
+ buf[pos] = digits[value & bitMask];
return String.__valueOf(buf, pos, bufSize);
}
Modified: releases/1.5/user/super/com/google/gwt/emul/java/lang/Long.java
==============================================================================
--- releases/1.5/user/super/com/google/gwt/emul/java/lang/Long.java
(original)
+++ releases/1.5/user/super/com/google/gwt/emul/java/lang/Long.java Wed
Sep 3 15:08:25 2008
@@ -225,21 +225,22 @@
final int bufSize = 65;
char[] buf = new char[bufSize];
+ char[] digits = __Digits.digits;
int pos = bufSize - 1;
// Cache a converted version for performance (pure long ops are
faster).
long radix = intRadix;
if (value >= 0) {
while (value >= radix) {
- buf[pos--] = __Digits.digits[(int) (value % radix)];
+ buf[pos--] = digits[(int) (value % radix)];
value /= radix;
}
- buf[pos] = __Digits.digits[(int) value];
+ buf[pos] = digits[(int) value];
} else {
while (value <= -radix) {
- buf[pos--] = __Digits.digits[(int) -(value % radix)];
+ buf[pos--] = digits[(int) -(value % radix)];
value /= radix;
}
- buf[pos--] = __Digits.digits[(int) -value];
+ buf[pos--] = digits[(int) -value];
buf[pos] = '-';
}
return String.__valueOf(buf, pos, bufSize);
@@ -292,19 +293,20 @@
final int bufSize = 64 / shift;
long bitMask = (1 << shift) - 1;
char[] buf = new char[bufSize];
+ char[] digits = __Digits.digits;
int pos = bufSize - 1;
if (value >= 0) {
while (value > bitMask) {
- buf[pos--] = __Digits.digits[(int) (value & bitMask)];
+ buf[pos--] = digits[(int) (value & bitMask)];
value >>= shift;
}
} else {
while (pos > 0) {
- buf[pos--] = __Digits.digits[(int) (value & bitMask)];
+ buf[pos--] = digits[(int) (value & bitMask)];
value >>= shift;
}
}
- buf[pos] = __Digits.digits[(int) (value & bitMask)];
+ buf[pos] = digits[(int) (value & bitMask)];
return String.__valueOf(buf, pos, bufSize);
}
--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---