< prev index next >

src/java.base/share/classes/java/lang/StringLatin1.java

Print this page
rev 55811 : 8229283: StringLatin1 should consistently use CharacterDataLatin1.instance when applicable
Reviewed-by: TBD

*** 175,185 **** int lim = Math.min(len1, len2); for (int k = 0; k < lim; k++) { char c1 = getChar(value, k); char c2 = StringUTF16.getChar(other, k); if (c1 != c2) { ! c1 = Character.toUpperCase(c1); c2 = Character.toUpperCase(c2); if (c1 != c2) { c1 = Character.toLowerCase(c1); c2 = Character.toLowerCase(c2); if (c1 != c2) { --- 175,185 ---- int lim = Math.min(len1, len2); for (int k = 0; k < lim; k++) { char c1 = getChar(value, k); char c2 = StringUTF16.getChar(other, k); if (c1 != c2) { ! c1 = (char) CharacterDataLatin1.instance.toUpperCase(c1); c2 = Character.toUpperCase(c2); if (c1 != c2) { c1 = Character.toLowerCase(c1); c2 = Character.toLowerCase(c2); if (c1 != c2) {
*** 389,400 **** char c1 = (char)(value[toffset++] & 0xff); char c2 = (char)(other[ooffset++] & 0xff); if (c1 == c2) { continue; } ! char u1 = Character.toUpperCase(c1); ! char u2 = Character.toUpperCase(c2); if (u1 == u2) { continue; } if (Character.toLowerCase(u1) == Character.toLowerCase(u2)) { continue; --- 389,400 ---- char c1 = (char)(value[toffset++] & 0xff); char c2 = (char)(other[ooffset++] & 0xff); if (c1 == c2) { continue; } ! int u1 = CharacterDataLatin1.instance.toUpperCase(c1); ! int u2 = CharacterDataLatin1.instance.toUpperCase(c2); if (u1 == u2) { continue; } if (Character.toLowerCase(u1) == Character.toLowerCase(u2)) { continue;
*** 411,421 **** char c1 = (char)(value[toffset++] & 0xff); char c2 = StringUTF16.getChar(other, ooffset++); if (c1 == c2) { continue; } ! char u1 = Character.toUpperCase(c1); char u2 = Character.toUpperCase(c2); if (u1 == u2) { continue; } if (Character.toLowerCase(u1) == Character.toLowerCase(u2)) { --- 411,421 ---- char c1 = (char)(value[toffset++] & 0xff); char c2 = StringUTF16.getChar(other, ooffset++); if (c1 == c2) { continue; } ! char u1 = (char) CharacterDataLatin1.instance.toUpperCase(c1); char u2 = Character.toUpperCase(c2); if (u1 == u2) { continue; } if (Character.toLowerCase(u1) == Character.toLowerCase(u2)) {
*** 433,443 **** int first; final int len = value.length; // Now check if there are any characters that need to be changed, or are surrogate for (first = 0 ; first < len; first++) { int cp = value[first] & 0xff; ! if (cp != Character.toLowerCase(cp)) { // no need to check Character.ERROR break; } } if (first == len) return str; --- 433,443 ---- int first; final int len = value.length; // Now check if there are any characters that need to be changed, or are surrogate for (first = 0 ; first < len; first++) { int cp = value[first] & 0xff; ! if (cp != CharacterDataLatin1.instance.toLowerCase(cp)) { // no need to check Character.ERROR break; } } if (first == len) return str;
*** 448,458 **** byte[] result = new byte[len]; System.arraycopy(value, 0, result, 0, first); // Just copy the first few // lowerCase characters. for (int i = first; i < len; i++) { int cp = value[i] & 0xff; ! cp = Character.toLowerCase(cp); if (!canEncode(cp)) { // not a latin1 character return toLowerCaseEx(str, value, first, locale, false); } result[i] = (byte)cp; } --- 448,458 ---- byte[] result = new byte[len]; System.arraycopy(value, 0, result, 0, first); // Just copy the first few // lowerCase characters. for (int i = first; i < len; i++) { int cp = value[i] & 0xff; ! cp = CharacterDataLatin1.instance.toLowerCase(cp); if (!canEncode(cp)) { // not a latin1 character return toLowerCaseEx(str, value, first, locale, false); } result[i] = (byte)cp; }
*** 472,482 **** int lowerChar; char[] lowerCharArray; if (localeDependent) { lowerChar = ConditionalSpecialCasing.toLowerCaseEx(str, i, locale); } else { ! lowerChar = Character.toLowerCase(srcChar); } if (Character.isBmpCodePoint(lowerChar)) { // Character.ERROR is not a bmp StringUTF16.putChar(result, resultOffset++, lowerChar); } else { if (lowerChar == Character.ERROR) { --- 472,482 ---- int lowerChar; char[] lowerCharArray; if (localeDependent) { lowerChar = ConditionalSpecialCasing.toLowerCaseEx(str, i, locale); } else { ! lowerChar = CharacterDataLatin1.instance.toLowerCase(srcChar); } if (Character.isBmpCodePoint(lowerChar)) { // Character.ERROR is not a bmp StringUTF16.putChar(result, resultOffset++, lowerChar); } else { if (lowerChar == Character.ERROR) {
*** 507,517 **** final int len = value.length; // Now check if there are any characters that need to be changed, or are surrogate for (first = 0 ; first < len; first++ ) { int cp = value[first] & 0xff; ! if (cp != Character.toUpperCaseEx(cp)) { // no need to check Character.ERROR break; } } if (first == len) { return str; --- 507,517 ---- final int len = value.length; // Now check if there are any characters that need to be changed, or are surrogate for (first = 0 ; first < len; first++ ) { int cp = value[first] & 0xff; ! if (cp != CharacterDataLatin1.instance.toUpperCaseEx(cp)) { // no need to check Character.ERROR break; } } if (first == len) { return str;
*** 523,533 **** byte[] result = new byte[len]; System.arraycopy(value, 0, result, 0, first); // Just copy the first few // upperCase characters. for (int i = first; i < len; i++) { int cp = value[i] & 0xff; ! cp = Character.toUpperCaseEx(cp); if (!canEncode(cp)) { // not a latin1 character return toUpperCaseEx(str, value, first, locale, false); } result[i] = (byte)cp; } --- 523,533 ---- byte[] result = new byte[len]; System.arraycopy(value, 0, result, 0, first); // Just copy the first few // upperCase characters. for (int i = first; i < len; i++) { int cp = value[i] & 0xff; ! cp = CharacterDataLatin1.instance.toUpperCaseEx(cp); if (!canEncode(cp)) { // not a latin1 character return toUpperCaseEx(str, value, first, locale, false); } result[i] = (byte)cp; }
*** 547,567 **** int upperChar; char[] upperCharArray; if (localeDependent) { upperChar = ConditionalSpecialCasing.toUpperCaseEx(str, i, locale); } else { ! upperChar = Character.toUpperCaseEx(srcChar); } if (Character.isBmpCodePoint(upperChar)) { StringUTF16.putChar(result, resultOffset++, upperChar); } else { if (upperChar == Character.ERROR) { if (localeDependent) { upperCharArray = ConditionalSpecialCasing.toUpperCaseCharArray(str, i, locale); } else { ! upperCharArray = Character.toUpperCaseCharArray(srcChar); } } else { upperCharArray = Character.toChars(upperChar); } /* Grow result if needed */ --- 547,567 ---- int upperChar; char[] upperCharArray; if (localeDependent) { upperChar = ConditionalSpecialCasing.toUpperCaseEx(str, i, locale); } else { ! upperChar = CharacterDataLatin1.instance.toUpperCaseEx(srcChar); } if (Character.isBmpCodePoint(upperChar)) { StringUTF16.putChar(result, resultOffset++, upperChar); } else { if (upperChar == Character.ERROR) { if (localeDependent) { upperCharArray = ConditionalSpecialCasing.toUpperCaseCharArray(str, i, locale); } else { ! upperCharArray = CharacterDataLatin1.instance.toUpperCaseCharArray(srcChar); } } else { upperCharArray = Character.toChars(upperChar); } /* Grow result if needed */
*** 595,605 **** public static int indexOfNonWhitespace(byte[] value) { int length = value.length; int left = 0; while (left < length) { char ch = getChar(value, left); ! if (ch != ' ' && ch != '\t' && !Character.isWhitespace(ch)) { break; } left++; } return left; --- 595,605 ---- public static int indexOfNonWhitespace(byte[] value) { int length = value.length; int left = 0; while (left < length) { char ch = getChar(value, left); ! if (ch != ' ' && ch != '\t' && !CharacterDataLatin1.instance.isWhitespace(ch)) { break; } left++; } return left;
*** 608,618 **** public static int lastIndexOfNonWhitespace(byte[] value) { int length = value.length; int right = length; while (0 < right) { char ch = getChar(value, right - 1); ! if (ch != ' ' && ch != '\t' && !Character.isWhitespace(ch)) { break; } right--; } return right; --- 608,618 ---- public static int lastIndexOfNonWhitespace(byte[] value) { int length = value.length; int right = length; while (0 < right) { char ch = getChar(value, right - 1); ! if (ch != ' ' && ch != '\t' && !CharacterDataLatin1.instance.isWhitespace(ch)) { break; } right--; } return right;
< prev index next >