mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
8310502: Optimization for j.l.Long.fastUUID()
Reviewed-by: liach, alanb
This commit is contained in:
parent
07734f6dde
commit
20f7d05ef2
5 changed files with 96 additions and 43 deletions
|
@ -445,39 +445,6 @@ public final class Long extends Number
|
|||
} while (charPos > offset);
|
||||
}
|
||||
|
||||
static String fastUUID(long lsb, long msb) {
|
||||
if (COMPACT_STRINGS) {
|
||||
byte[] buf = new byte[36];
|
||||
formatUnsignedLong0(lsb, 4, buf, 24, 12);
|
||||
formatUnsignedLong0(lsb >>> 48, 4, buf, 19, 4);
|
||||
formatUnsignedLong0(msb, 4, buf, 14, 4);
|
||||
formatUnsignedLong0(msb >>> 16, 4, buf, 9, 4);
|
||||
formatUnsignedLong0(msb >>> 32, 4, buf, 0, 8);
|
||||
|
||||
buf[23] = '-';
|
||||
buf[18] = '-';
|
||||
buf[13] = '-';
|
||||
buf[8] = '-';
|
||||
|
||||
return new String(buf, LATIN1);
|
||||
} else {
|
||||
byte[] buf = new byte[72];
|
||||
|
||||
formatUnsignedLong0UTF16(lsb, 4, buf, 24, 12);
|
||||
formatUnsignedLong0UTF16(lsb >>> 48, 4, buf, 19, 4);
|
||||
formatUnsignedLong0UTF16(msb, 4, buf, 14, 4);
|
||||
formatUnsignedLong0UTF16(msb >>> 16, 4, buf, 9, 4);
|
||||
formatUnsignedLong0UTF16(msb >>> 32, 4, buf, 0, 8);
|
||||
|
||||
StringUTF16.putChar(buf, 23, '-');
|
||||
StringUTF16.putChar(buf, 18, '-');
|
||||
StringUTF16.putChar(buf, 13, '-');
|
||||
StringUTF16.putChar(buf, 8, '-');
|
||||
|
||||
return new String(buf, UTF16);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a {@code String} object representing the specified
|
||||
* {@code long}. The argument is converted to signed decimal
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue