RFR: JDK-8189611: JarFile versioned stream and real name support
Martin Buchholz
martinrb at google.com
Thu Nov 30 00:03:39 UTC 2017
+ private static boolean isASCII(byte[] ba, int off, int len) {+
for (int i = off; i < off + len; i++) {+ if (ba[i] <
0)+ return false;+ }+ return true;+ }
I see that StringCoding has
@HotSpotIntrinsicCandidate
public static boolean hasNegatives(byte[] ba, int off, int len) {
for (int i = off; i < off + len; i++) {
if (ba[i] < 0) {
return true;
}
}
return false;
}
and in hotspot-land I see that MacroAssembler::has_negatives has 200 lines
of hairy assemblerese. Let's reuse that enormous effort! And not just in
ZipCoder.java - needing to check a byte sequence for Ascii-ness is a bit
goofy but important enough to be a public API (I've used optimized
versions of this in other languages). I don't know where it belongs (could
add a method to CharsetDecoder, intrinsified for US_ASCII), but we can find
one. Even without that, surely today we should be able to reuse this
intrinsic from somewhere else within the java.base module.
(Keeping high-performance intrinsics hidden is a top reason why java
developers use jdk internals)
(Not directed at Xueming in particular)
More information about the core-libs-dev
mailing list