Loading core/jni/android_text_AndroidCharacter.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -76,7 +76,8 @@ static void getDirectionalities(JNIEnv* env, jobject obj, jcharArray srcArray, int c = 0x00010000 + ((src[i] - 0xD800) << 10) + (src[i + 1] & 0x3FF); int dir = u_charDirection(c); if (dir < 0 || dir > JAVA_LANG_CHARACTER_MAX_DIRECTIONALITY) if (dir < 0 || dir > JAVA_LANG_CHARACTER_MAX_DIRECTIONALITY || u_charType(c) == U_UNASSIGNED) dir = PROPERTY_UNDEFINED; else dir = directionality_map[dir]; Loading @@ -86,7 +87,8 @@ static void getDirectionalities(JNIEnv* env, jobject obj, jcharArray srcArray, } else { int c = src[i]; int dir = u_charDirection(c); if (dir < 0 || dir > JAVA_LANG_CHARACTER_MAX_DIRECTIONALITY) if (dir < 0 || dir > JAVA_LANG_CHARACTER_MAX_DIRECTIONALITY || u_charType(c) == U_UNASSIGNED) dest[i] = PROPERTY_UNDEFINED; else dest[i] = directionality_map[dir]; Loading core/tests/coretests/src/android/text/AndroidCharacterTest.java +9 −15 Original line number Diff line number Diff line Loading @@ -35,15 +35,12 @@ public class AndroidCharacterTest { byte[] java_lang_results = new byte[size]; int index = 0; for (int cp = 0; cp <= Character.MAX_VALUE; cp++) { // Exempt unassigned code point due to b/120074586 if (Character.getType(cp) != Character.UNASSIGNED) { if (cp < Character.MIN_SURROGATE || cp > Character.MAX_SURROGATE) { chars[index] = (char) cp; java_lang_results[index] = Character.getDirectionality(cp); index++; } } } byte[] android_text_results = new byte[size]; AndroidCharacter.getDirectionalities(chars, android_text_results, index); Loading @@ -60,15 +57,12 @@ public class AndroidCharacterTest { int index = 0; for (int cp = Character.MIN_SUPPLEMENTARY_CODE_POINT; cp <= Character.MAX_CODE_POINT; cp++) { // Exempt unassigned code point due to b/120074586 if (Character.getType(cp) != Character.UNASSIGNED) { chars[index] = Character.highSurrogate(cp); chars[index + 1] = Character.lowSurrogate(cp); java_lang_results[index] = java_lang_results[index + 1] = Character .getDirectionality(cp); index += 2; } } byte[] android_text_results = new byte[size]; AndroidCharacter.getDirectionalities(chars, android_text_results, index); Loading Loading
core/jni/android_text_AndroidCharacter.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -76,7 +76,8 @@ static void getDirectionalities(JNIEnv* env, jobject obj, jcharArray srcArray, int c = 0x00010000 + ((src[i] - 0xD800) << 10) + (src[i + 1] & 0x3FF); int dir = u_charDirection(c); if (dir < 0 || dir > JAVA_LANG_CHARACTER_MAX_DIRECTIONALITY) if (dir < 0 || dir > JAVA_LANG_CHARACTER_MAX_DIRECTIONALITY || u_charType(c) == U_UNASSIGNED) dir = PROPERTY_UNDEFINED; else dir = directionality_map[dir]; Loading @@ -86,7 +87,8 @@ static void getDirectionalities(JNIEnv* env, jobject obj, jcharArray srcArray, } else { int c = src[i]; int dir = u_charDirection(c); if (dir < 0 || dir > JAVA_LANG_CHARACTER_MAX_DIRECTIONALITY) if (dir < 0 || dir > JAVA_LANG_CHARACTER_MAX_DIRECTIONALITY || u_charType(c) == U_UNASSIGNED) dest[i] = PROPERTY_UNDEFINED; else dest[i] = directionality_map[dir]; Loading
core/tests/coretests/src/android/text/AndroidCharacterTest.java +9 −15 Original line number Diff line number Diff line Loading @@ -35,15 +35,12 @@ public class AndroidCharacterTest { byte[] java_lang_results = new byte[size]; int index = 0; for (int cp = 0; cp <= Character.MAX_VALUE; cp++) { // Exempt unassigned code point due to b/120074586 if (Character.getType(cp) != Character.UNASSIGNED) { if (cp < Character.MIN_SURROGATE || cp > Character.MAX_SURROGATE) { chars[index] = (char) cp; java_lang_results[index] = Character.getDirectionality(cp); index++; } } } byte[] android_text_results = new byte[size]; AndroidCharacter.getDirectionalities(chars, android_text_results, index); Loading @@ -60,15 +57,12 @@ public class AndroidCharacterTest { int index = 0; for (int cp = Character.MIN_SUPPLEMENTARY_CODE_POINT; cp <= Character.MAX_CODE_POINT; cp++) { // Exempt unassigned code point due to b/120074586 if (Character.getType(cp) != Character.UNASSIGNED) { chars[index] = Character.highSurrogate(cp); chars[index + 1] = Character.lowSurrogate(cp); java_lang_results[index] = java_lang_results[index + 1] = Character .getDirectionality(cp); index += 2; } } byte[] android_text_results = new byte[size]; AndroidCharacter.getDirectionalities(chars, android_text_results, index); Loading