RFR: JDK-8189611: JarFile versioned stream and real name support
Martin Buchholz
martinrb at google.com
Thu Nov 30 00:05:26 UTC 2017
(How hard is it to rename that hotspot intrinsic to isAscii?)
On Wed, Nov 29, 2017 at 4:03 PM, Martin Buchholz <martinrb at google.com>
wrote:
> + 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