< prev index next >
src/java.base/share/classes/java/lang/Long.java
Print this page
@@ -377,11 +377,10 @@
*/
static String toUnsignedString0(long val, int shift) {
// assert shift > 0 && shift <=5 : "Illegal shift value";
int mag = Long.SIZE - Long.numberOfLeadingZeros(val);
int chars = Math.max(((mag + (shift - 1)) / shift), 1);
-
if (COMPACT_STRINGS) {
byte[] buf = new byte[chars];
formatUnsignedLong0(val, shift, buf, 0, chars);
return new String(buf, LATIN1);
} else {
@@ -488,11 +487,11 @@
* @implNote This method converts positive inputs into negative
* values, to cover the Long.MIN_VALUE case. Converting otherwise
* (negative to positive) will expose -Long.MIN_VALUE that overflows
* long.
*/
- static void getChars(long i, int index, byte[] buf) {
+ static int getChars(long i, int index, byte[] buf) {
long q;
int r;
int charPos = index;
boolean negative = (i < 0);
@@ -531,13 +530,14 @@
}
if (negative) {
buf[--charPos] = (byte)'-';
}
+ return charPos;
}
- static void getCharsUTF16(long i, int index, byte[] buf) {
+ static int getCharsUTF16(long i, int index, byte[] buf) {
long q;
int r;
int charPos = index;
boolean negative = (i < 0);
@@ -576,10 +576,11 @@
}
if (negative) {
StringUTF16.putChar(buf, --charPos, '-');
}
+ return charPos;
}
/**
* Returns the string representation size for a given long value.
*
< prev index next >