< prev index next >
src/java.base/share/classes/java/lang/StringUTF16.java
Print this page
rev 58157 : 8240094: Optimize empty substring handling
Reviewed-by: redestad, igerasim, jlaskey
Contributed-by: sergei.tsypanov@yandex.ru
*** 1014,1035 ****
}
public static String stripLeading(byte[] value) {
int length = value.length >>> 1;
int left = indexOfNonWhitespace(value);
- if (left == length) {
- return "";
- }
return (left != 0) ? newString(value, left, length - left) : null;
}
public static String stripTrailing(byte[] value) {
int length = value.length >>> 1;
int right = lastIndexOfNonWhitespace(value);
- if (right == 0) {
- return "";
- }
return (right != length) ? newString(value, 0, right) : null;
}
private final static class LinesSpliterator implements Spliterator<String> {
private byte[] value;
--- 1014,1029 ----
*** 1130,1139 ****
--- 1124,1136 ----
putChar(val, index++, str[off++]);
}
}
public static String newString(byte[] val, int index, int len) {
+ if (len == 0) {
+ return "";
+ }
if (String.COMPACT_STRINGS) {
byte[] buf = compress(val, index, len);
if (buf != null) {
return new String(buf, LATIN1);
}
< prev index next >