From e918a59b1dacf273620aee334517bebfb1fb1a0f Mon Sep 17 00:00:00 2001 From: Volkan Yazici Date: Fri, 6 Jun 2025 06:26:09 +0000 Subject: [PATCH] 8357821: Revert incorrectly named JavaLangAccess::unchecked* methods Reviewed-by: pminborg --- .../share/classes/java/io/DataInputStream.java | 4 ++-- .../classes/java/io/ObjectInputStream.java | 4 ++-- .../share/classes/java/lang/System.java | 6 +++--- .../share/classes/java/util/zip/ZipCoder.java | 2 +- .../jdk/internal/access/JavaLangAccess.java | 18 +++++++++--------- .../classfile/impl/AbstractPoolEntry.java | 4 ++-- .../share/classes/sun/nio/cs/CESU_8.java | 2 +- .../share/classes/sun/nio/cs/DoubleByte.java | 2 +- .../share/classes/sun/nio/cs/ISO_8859_1.java | 2 +- .../share/classes/sun/nio/cs/SingleByte.java | 2 +- .../share/classes/sun/nio/cs/US_ASCII.java | 2 +- .../share/classes/sun/nio/cs/UTF_8.java | 2 +- 12 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/java.base/share/classes/java/io/DataInputStream.java b/src/java.base/share/classes/java/io/DataInputStream.java index fa6fecf83da..daf75b1318f 100644 --- a/src/java.base/share/classes/java/io/DataInputStream.java +++ b/src/java.base/share/classes/java/io/DataInputStream.java @@ -595,7 +595,7 @@ loop: while (true) { int chararr_count=0; in.readFully(bytearr, 0, utflen); - int ascii = JLA.uncheckedCountPositives(bytearr, 0, utflen); + int ascii = JLA.countPositives(bytearr, 0, utflen); if (ascii == utflen) { String str; if (trusted) { @@ -621,7 +621,7 @@ loop: while (true) { } if (ascii != 0) { - JLA.uncheckedInflateBytesToChars(bytearr, 0, chararr, 0, ascii); + JLA.inflateBytesToChars(bytearr, 0, chararr, 0, ascii); count += ascii; chararr_count += ascii; } diff --git a/src/java.base/share/classes/java/io/ObjectInputStream.java b/src/java.base/share/classes/java/io/ObjectInputStream.java index b9593fa2c2f..daed5f3cce5 100644 --- a/src/java.base/share/classes/java/io/ObjectInputStream.java +++ b/src/java.base/share/classes/java/io/ObjectInputStream.java @@ -3536,7 +3536,7 @@ public class ObjectInputStream if (utflen > 0 && utflen < Integer.MAX_VALUE) { // Scan for leading ASCII chars int avail = end - pos; - int ascii = JLA.uncheckedCountPositives(buf, pos, Math.min(avail, (int)utflen)); + int ascii = JLA.countPositives(buf, pos, Math.min(avail, (int)utflen)); if (ascii == utflen) { // Complete match, consume the buf[pos ... pos + ascii] range and return. // Modified UTF-8 and ISO-8859-1 are both ASCII-compatible encodings bytes @@ -3549,7 +3549,7 @@ public class ObjectInputStream // Avoid allocating a StringBuilder if there's enough data in buf and // cbuf is large enough if (avail >= utflen && utflen <= CHAR_BUF_SIZE) { - JLA.uncheckedInflateBytesToChars(buf, pos, cbuf, 0, ascii); + JLA.inflateBytesToChars(buf, pos, cbuf, 0, ascii); pos += ascii; int cbufPos = readUTFSpan(ascii, utflen - ascii); return new String(cbuf, 0, cbufPos); diff --git a/src/java.base/share/classes/java/lang/System.java b/src/java.base/share/classes/java/lang/System.java index bcdbc39e665..0175558d313 100644 --- a/src/java.base/share/classes/java/lang/System.java +++ b/src/java.base/share/classes/java/lang/System.java @@ -2118,7 +2118,7 @@ public final class System { return ModuleLayer.layers(loader); } - public int uncheckedCountPositives(byte[] bytes, int offset, int length) { + public int countPositives(byte[] bytes, int offset, int length) { return StringCoding.countPositives(bytes, offset, length); } public int countNonZeroAscii(String s) { @@ -2145,11 +2145,11 @@ public final class System { return String.getBytesUTF8NoRepl(s); } - public void uncheckedInflateBytesToChars(byte[] src, int srcOff, char[] dst, int dstOff, int len) { + public void inflateBytesToChars(byte[] src, int srcOff, char[] dst, int dstOff, int len) { StringLatin1.inflate(src, srcOff, dst, dstOff, len); } - public int uncheckedDecodeASCII(byte[] src, int srcOff, char[] dst, int dstOff, int len) { + public int decodeASCII(byte[] src, int srcOff, char[] dst, int dstOff, int len) { return String.decodeASCII(src, srcOff, dst, dstOff, len); } diff --git a/src/java.base/share/classes/java/util/zip/ZipCoder.java b/src/java.base/share/classes/java/util/zip/ZipCoder.java index bbf1c10112a..0c3282e3518 100644 --- a/src/java.base/share/classes/java/util/zip/ZipCoder.java +++ b/src/java.base/share/classes/java/util/zip/ZipCoder.java @@ -266,7 +266,7 @@ class ZipCoder { return 0; } int end = off + len; - int asciiLen = JLA.uncheckedCountPositives(a, off, len); + int asciiLen = JLA.countPositives(a, off, len); if (asciiLen != len) { // Non-ASCII, fall back to decoding a String // We avoid using decoder() here since the UTF8ZipCoder is diff --git a/src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java b/src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java index 5109e7b2a5b..e8343274cac 100644 --- a/src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java +++ b/src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java @@ -302,10 +302,10 @@ public interface JavaLangAccess { /** * Count the number of leading positive bytes in the range. - *

- * WARNING: This method does not perform any bound checks. + * + * @implSpec Implementations of this method must perform bounds checks. */ - int uncheckedCountPositives(byte[] ba, int off, int len); + int countPositives(byte[] ba, int off, int len); /** * Count the number of leading non-zero ascii chars in the String. @@ -390,20 +390,20 @@ public interface JavaLangAccess { /** * Inflated copy from {@code byte[]} to {@code char[]}, as defined by * {@code StringLatin1.inflate}. - *

- * WARNING: This method does not perform any bound checks. + * + * @implSpec Implementations of this method must perform bounds checks. */ - void uncheckedInflateBytesToChars(byte[] src, int srcOff, char[] dst, int dstOff, int len); + void inflateBytesToChars(byte[] src, int srcOff, char[] dst, int dstOff, int len); /** * Decodes ASCII from the source byte array into the destination * char array. - *

- * WARNING: This method does not perform any bound checks. + * + * @implSpec Implementations of this method must perform bounds checks. * * @return the number of bytes successfully decoded, at most len */ - int uncheckedDecodeASCII(byte[] src, int srcOff, char[] dst, int dstOff, int len); + int decodeASCII(byte[] src, int srcOff, char[] dst, int dstOff, int len); /** * Returns the initial `System.in` to determine if it is replaced diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPoolEntry.java b/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPoolEntry.java index ab7f0847bbd..962a2057585 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPoolEntry.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPoolEntry.java @@ -218,7 +218,7 @@ public abstract sealed class AbstractPoolEntry { * two-times-three-byte format instead. */ private void inflate() { - int singleBytes = JLA.uncheckedCountPositives(rawBytes, offset, rawLen); + int singleBytes = JLA.countPositives(rawBytes, offset, rawLen); int hash = ArraysSupport.hashCodeOfUnsigned(rawBytes, offset, singleBytes, 0); if (singleBytes == rawLen) { this.contentHash = hash; @@ -233,7 +233,7 @@ public abstract sealed class AbstractPoolEntry { char[] chararr = new char[rawLen]; int chararr_count = singleBytes; // Inflate prefix of bytes to characters - JLA.uncheckedInflateBytesToChars(rawBytes, offset, chararr, 0, singleBytes); + JLA.inflateBytesToChars(rawBytes, offset, chararr, 0, singleBytes); int px = offset + singleBytes; int utfend = offset + rawLen; diff --git a/src/java.base/share/classes/sun/nio/cs/CESU_8.java b/src/java.base/share/classes/sun/nio/cs/CESU_8.java index a6e233873a8..a9a25e151ad 100644 --- a/src/java.base/share/classes/sun/nio/cs/CESU_8.java +++ b/src/java.base/share/classes/sun/nio/cs/CESU_8.java @@ -196,7 +196,7 @@ class CESU_8 extends Unicode int dp = doff + dst.position(); int dl = doff + dst.limit(); - int n = JLA.uncheckedDecodeASCII(sa, sp, da, dp, Math.min(sl - sp, dl - dp)); + int n = JLA.decodeASCII(sa, sp, da, dp, Math.min(sl - sp, dl - dp)); sp += n; dp += n; diff --git a/src/java.base/share/classes/sun/nio/cs/DoubleByte.java b/src/java.base/share/classes/sun/nio/cs/DoubleByte.java index c4c9856a60b..4738f51515b 100644 --- a/src/java.base/share/classes/sun/nio/cs/DoubleByte.java +++ b/src/java.base/share/classes/sun/nio/cs/DoubleByte.java @@ -168,7 +168,7 @@ public class DoubleByte { try { if (isASCIICompatible) { - int n = JLA.uncheckedDecodeASCII(sa, sp, da, dp, Math.min(dl - dp, sl - sp)); + int n = JLA.decodeASCII(sa, sp, da, dp, Math.min(dl - dp, sl - sp)); dp += n; sp += n; } diff --git a/src/java.base/share/classes/sun/nio/cs/ISO_8859_1.java b/src/java.base/share/classes/sun/nio/cs/ISO_8859_1.java index 241171d8deb..39215bfa93d 100644 --- a/src/java.base/share/classes/sun/nio/cs/ISO_8859_1.java +++ b/src/java.base/share/classes/sun/nio/cs/ISO_8859_1.java @@ -87,7 +87,7 @@ public class ISO_8859_1 int dl = doff + dst.limit(); int decodeLen = Math.min(sl - sp, dl - dp); - JLA.uncheckedInflateBytesToChars(sa, sp, da, dp, decodeLen); + JLA.inflateBytesToChars(sa, sp, da, dp, decodeLen); sp += decodeLen; dp += decodeLen; src.position(sp - soff); diff --git a/src/java.base/share/classes/sun/nio/cs/SingleByte.java b/src/java.base/share/classes/sun/nio/cs/SingleByte.java index fe66f3216a4..d802cc85aa8 100644 --- a/src/java.base/share/classes/sun/nio/cs/SingleByte.java +++ b/src/java.base/share/classes/sun/nio/cs/SingleByte.java @@ -95,7 +95,7 @@ public class SingleByte } if (isASCIICompatible) { - int n = JLA.uncheckedDecodeASCII(sa, sp, da, dp, Math.min(dl - dp, sl - sp)); + int n = JLA.decodeASCII(sa, sp, da, dp, Math.min(dl - dp, sl - sp)); sp += n; dp += n; } diff --git a/src/java.base/share/classes/sun/nio/cs/US_ASCII.java b/src/java.base/share/classes/sun/nio/cs/US_ASCII.java index 627b1433d61..bb84ab1bd4b 100644 --- a/src/java.base/share/classes/sun/nio/cs/US_ASCII.java +++ b/src/java.base/share/classes/sun/nio/cs/US_ASCII.java @@ -83,7 +83,7 @@ public class US_ASCII int dl = doff + dst.limit(); // ASCII only loop - int n = JLA.uncheckedDecodeASCII(sa, sp, da, dp, Math.min(sl - sp, dl - dp)); + int n = JLA.decodeASCII(sa, sp, da, dp, Math.min(sl - sp, dl - dp)); sp += n; dp += n; src.position(sp - soff); diff --git a/src/java.base/share/classes/sun/nio/cs/UTF_8.java b/src/java.base/share/classes/sun/nio/cs/UTF_8.java index 89a199db99b..54e479f838a 100644 --- a/src/java.base/share/classes/sun/nio/cs/UTF_8.java +++ b/src/java.base/share/classes/sun/nio/cs/UTF_8.java @@ -227,7 +227,7 @@ public final class UTF_8 extends Unicode { int dp = doff + dst.position(); int dl = doff + dst.limit(); - int n = JLA.uncheckedDecodeASCII(sa, sp, da, dp, Math.min(sl - sp, dl - dp)); + int n = JLA.decodeASCII(sa, sp, da, dp, Math.min(sl - sp, dl - dp)); sp += n; dp += n;